
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

MagickBooleanType
TransformImageColorspace(Image *image,ColorspaceType colorspace,ExceptionInfo *exception)

{
  bool bVar1;
  ColorspaceType CVar2;
  MagickBooleanType MVar3;
  MagickBooleanType MVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  double *pdVar10;
  float *pfVar11;
  int iVar12;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int *piVar13;
  int extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int iVar14;
  int iVar15;
  undefined *puVar16;
  undefined *puVar17;
  undefined4 uVar18;
  double *pdVar19;
  double *pdVar20;
  uint uVar21;
  float *pfVar22;
  undefined *puVar23;
  undefined4 uVar24;
  int *piVar25;
  int iVar26;
  int iVar27;
  uint uVar28;
  int iVar29;
  uint uVar30;
  Image *unaff_s0;
  uint uVar31;
  int *piVar32;
  int *piVar33;
  int iVar34;
  undefined *puVar35;
  code *pcVar36;
  code *pcVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  float fVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  double dVar46;
  double dVar47;
  ulonglong uVar48;
  double dVar49;
  double dVar50;
  undefined8 uVar51;
  int iStack_1b0;
  double dStack_128;
  int iStack_120;
  undefined4 uStack_11c;
  int iStack_118;
  double *pdStack_114;
  double *pdStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  uint uStack_fc;
  uint uStack_f8;
  MagickBooleanType MStack_f4;
  int iStack_ec;
  MagickBooleanType MStack_e8;
  undefined *puStack_e4;
  uint uStack_e0;
  undefined *puStack_dc;
  uint uStack_d8;
  int *piStack_d4;
  undefined4 uStack_d0;
  undefined4 uStack_cc;
  undefined4 uStack_c8;
  code *pcStack_c4;
  undefined *puStack_b0;
  double *pdStack_a4;
  double dStack_a0;
  undefined *puStack_98;
  undefined *puStack_94;
  undefined4 uStack_90;
  undefined *puStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  uint uStack_80;
  uint uStack_7c;
  MagickBooleanType MStack_78;
  int iStack_6c;
  Image *pIStack_68;
  
  if (image == (Image *)0x0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);
  }
  else {
    unaff_s0 = image;
    if (image->signature == 0xabacadab) {
      if (image->debug == MagickFalse) {
        CVar2 = image->colorspace;
      }
      else {
        (*(code *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);
        CVar2 = image->colorspace;
      }
      if (CVar2 == colorspace) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);
        return MVar3;
      }
      (*(code *)PTR_DeleteImageProfile_003a9828)
                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);
      (*(code *)PTR_DeleteImageProfile_003a9828)
                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);
      if (colorspace == UndefinedColorspace) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);
        return MVar3;
      }
      if (1 < colorspace - sRGBColorspace) {
        if (image->colorspace - sRGBColorspace < 2) {
          MVar3 = MagickTrue;
        }
        else {
          MVar3 = TransformsRGBImage(image,exception);
          if (MVar3 == MagickFalse) {
            return MagickFalse;
          }
        }
        MVar4 = sRGBTransformImage(image,colorspace,exception);
        if (MVar4 == MagickFalse) {
          return MagickFalse;
        }
        return MVar3;
      }
      MVar3 = TransformsRGBImage(image,exception);
      return MVar3;
    }
  }
  uVar18 = 0x5e6;
  puVar23 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;
  puVar17 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;
  puVar16 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;
  puVar35 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)();
  puStack_b0 = puVar35 + 0x3416c0;
  dVar38 = *(double *)(puVar17 + 0x248);
  dVar47 = *(double *)(puVar16 + 0x248);
  piVar33 = *(int **)(puVar35 + 0x33a040);
  iStack_6c = *piVar33;
  if (dVar38 < dVar47) {
    iVar8 = *(int *)(puVar35 + 0x3396f8);
    if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    dVar47 = dVar47 * dVar47;
  }
  else {
    iVar8 = *(int *)(puVar35 + 0x3396f8);
    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {
      if (dVar38 < dVar47) goto LAB_0006f470;
      dVar47 = dVar38 * dVar38;
    }
    else {
LAB_0006f270:
      dVar47 = *(double *)(iVar8 + -0x5ad0);
    }
  }
  uVar21 = *(uint *)(puVar16 + 0x1c);
  if (*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c)) {
    uVar21 = *(uint *)(puVar17 + 0x1c);
  }
  uVar5 = *(uint *)(puVar16 + 0x18);
  if (*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18)) {
    uVar5 = *(uint *)(puVar17 + 0x18);
  }
  pIStack_68 = unaff_s0;
  uVar6 = (**(code **)(puVar35 + 0x33a564))(puVar16,puVar23);
  uVar7 = (**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23);
  iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16);
  if (((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&
     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||
      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))) {
    (**(code **)(puStack_b0 + -0x7774))(7);
    uVar31 = uVar21;
    if ((int)uVar21 < 0) {
      uVar31 = uVar21 + 0x3f;
    }
    pdVar19 = (double *)((int)uVar31 >> 6);
    if (extraout_v1 < (int)pdVar19) {
      pdStack_a4 = pdVar19;
      (**(code **)(puStack_b0 + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      pdVar19 = pdStack_a4;
    }
    else {
      bVar1 = (int)uVar21 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_a4 = pdVar19;
      (**(code **)(puStack_b0 + -0x7774))(7);
      pdVar19 = pdStack_a4;
      if (extraout_v1_01 < (int)pdStack_a4) {
        pcVar36 = *(code **)(puStack_b0 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      pdVar19 = (double *)0x1;
    }
  }
  else {
    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);
    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {
      pcVar36 = *(code **)(puStack_b0 + -0x7774);
      if ((uint)uVar51 < 2) {
        uVar51 = (*pcVar36)(7);
        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;
        pcVar36 = *(code **)(puStack_b0 + -0x7774);
        if ((uint)uVar51 < 2) {
          pdVar19 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      pcVar36 = *(code **)(puStack_b0 + -0x7774);
    }
    uVar51 = (*pcVar36)(7);
    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&
       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {
LAB_0006f4b4:
      (*pcVar36)(7);
      pdVar19 = extraout_v1_00;
    }
    else {
      pdVar19 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar24 = 0;
  pdVar20 = &dStack_a0;
  MStack_78 = MagickTrue;
  dStack_a0 = dVar47;
  puStack_98 = puVar16;
  puStack_94 = puVar17;
  uStack_90 = uVar18;
  puStack_8c = puVar23;
  uStack_88 = uVar6;
  uStack_84 = uVar7;
  uStack_80 = uVar5;
  uStack_7c = uVar21;
  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);
  MVar3 = MStack_78;
  (**(code **)(puStack_b0 + -0x79bc))(uVar7);
  (**(code **)(puStack_b0 + -0x79bc))(uVar6);
  if (iStack_6c == *piVar33) {
    return MVar3;
  }
  pcVar36 = *(code **)(puStack_b0 + -0x784c);
  pcVar37 = GetMeanAbsoluteDistortion;
  iVar8 = iStack_6c;
  (*pcVar36)();
  piVar32 = *(int **)(pcVar36 + 0x339d18);
  uVar31 = *(uint *)(iVar8 + 0x1c);
  if (*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c)) {
    uVar31 = *(uint *)((int)pdVar20 + 0x1c);
  }
  uVar30 = *(uint *)(iVar8 + 0x18);
  if (*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3)) {
    uVar30 = *(uint *)(pdVar20 + 3);
  }
  MStack_e8 = MVar3;
  iStack_ec = *piVar32;
  puStack_e4 = puVar17;
  uStack_e0 = uVar21;
  puStack_dc = puVar23;
  uStack_d8 = uVar5;
  piStack_d4 = piVar33;
  uStack_d0 = uVar18;
  uStack_cc = uVar6;
  uStack_c8 = uVar7;
  pcStack_c4 = pcVar37;
  uVar18 = (**(code **)(pcVar36 + 0x33a23c))();
  uVar6 = (**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24);
  iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8);
  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&
     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||
      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))) {
    (**(code **)(pcVar36 + 0x339c24))(7);
    uVar21 = uVar31;
    if ((int)uVar31 < 0) {
      uVar21 = uVar31 + 0x3f;
    }
    iVar9 = (int)uVar21 >> 6;
    if (extraout_v1_03 < iVar9) {
      (**(code **)(pcVar36 + 0x339c24))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = (int)uVar31 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar36 + 0x339c24))(7);
      if (extraout_v1_05 < iVar9) {
        pcVar37 = *(code **)(pcVar36 + 0x339c24);
        goto LAB_0006f8ac;
      }
    }
    else {
      iVar9 = 1;
    }
  }
  else {
    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);
    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {
      pcVar37 = *(code **)(pcVar36 + 0x339c24);
      if ((uint)uVar51 < 2) {
        uVar51 = (*pcVar37)(7);
        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;
        pcVar37 = *(code **)(pcVar36 + 0x339c24);
        if ((uint)uVar51 < 2) {
          iVar9 = 1;
          goto LAB_0006f624;
        }
      }
    }
    else {
LAB_0006f60c:
      pcVar37 = *(code **)(pcVar36 + 0x339c24);
    }
    uVar51 = (*pcVar37)(7);
    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&
       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {
LAB_0006f8ac:
      (*pcVar37)(7);
      iVar9 = extraout_v1_04;
    }
    else {
      iVar9 = 2;
    }
  }
LAB_0006f624:
  piVar25 = (int *)0x0;
  piVar33 = &iStack_120;
  MStack_f4 = MagickTrue;
  uStack_11c = 0;
  iStack_120 = 0;
  uStack_100 = 0;
  iStack_118 = iVar8;
  pdStack_114 = pdVar20;
  pdStack_110 = pdVar19;
  uStack_10c = uVar24;
  uStack_108 = uVar18;
  uStack_104 = uVar6;
  uStack_fc = uVar30;
  uStack_f8 = uVar31;
  (**(code **)(pcVar36 + 0x339c80))(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9);
  MVar3 = MStack_f4;
  uVar7 = uStack_11c;
  iVar9 = iStack_120;
  dVar38 = (double)CONCAT44(iStack_120,uStack_11c);
  (**(code **)(pcVar36 + 0x3399dc))(uVar6);
  (**(code **)(pcVar36 + 0x3399dc))(uVar18);
  if (0.0 <= dVar38) {
    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);
    dStack_128 = dVar38;
  }
  else {
    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);
    dStack_128 = -(double)CONCAT44(iVar9,uVar7);
  }
  if (*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128) {
    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;
  }
  else {
    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);
  }
  pdVar20 = pdVar19;
  do {
    pdVar10 = pdVar20 + 1;
    *pdVar20 = *pdVar20 * dVar47;
    pdVar20 = pdVar10;
  } while (pdVar19 + 0x41 != pdVar10);
  pdVar20 = (double *)0x0;
  if (0 < *(int *)(iVar8 + 0x2c0)) {
    piVar25 = *(int **)(iVar8 + 0x2d0);
    piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;
    piVar13 = piVar25;
    do {
      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {
        pdVar20 = (double *)((int)pdVar20 + 1);
      }
      piVar13 = piVar13 + 3;
    } while (piVar13 != piVar33);
    if (pdVar20 != (double *)0x0) {
      dVar38 = (double)(int)pdVar20;
      if ((int)pdVar20 < 0) {
        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);
      }
      goto LAB_0006f778;
    }
  }
  dVar38 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);
LAB_0006f778:
  iVar8 = *piVar32;
  pdVar19[0x40] = pdVar19[0x40] / dVar38;
  if (iStack_ec == iVar8) {
    return MVar3;
  }
  pcVar36 = *(code **)(pcVar36 + 0x339b4c);
  iVar8 = iStack_ec;
  (*pcVar36)();
  uVar21 = *(uint *)(iVar8 + 0x1c);
  if (*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7]) {
    uVar21 = piVar33[7];
  }
  uVar5 = *(uint *)(iVar8 + 0x18);
  if (*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6]) {
    uVar5 = piVar33[6];
  }
  uVar18 = (**(code **)(pcVar36 + 0x339e44))();
  uVar6 = (**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25);
  if ((int)uVar21 < 1) {
    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);
    MVar3 = MagickTrue;
    dVar49 = 0.0;
    dVar38 = dVar49;
    dVar47 = dVar49;
  }
  else {
    iVar9 = *(int *)(pcVar36 + 0x338fd0);
    iVar14 = *(int *)(pcVar36 + 0x338fd0);
    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);
    dVar50 = *(double *)(iVar9 + 0x1438);
    uVar31 = 0;
    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);
    dVar49 = 0.0;
    pcVar37 = *(code **)(pcVar36 + 0x339d4c);
    dVar38 = dVar49;
    dVar47 = dVar49;
    dVar40 = dVar50;
    do {
      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);
      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);
      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {
        MVar3 = MagickFalse;
        goto LAB_0006fc88;
      }
      if (0 < (int)uVar5) {
        uVar30 = 0;
        piVar32 = *(int **)(iVar8 + 0x2d0);
        dVar43 = *(double *)(iStack_1b0 + 0x1440);
        iVar34 = piVar32[0x13];
        dVar46 = *(double *)(iVar9 + 0x1438);
        fVar42 = *(float *)(iVar14 + 0x3708);
        do {
          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||
                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&
                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {
            uVar30 = uVar30 + 1;
            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);
            iVar12 = iVar12 + piVar33[0xb0] * 4;
            if (uVar30 == uVar5) goto LAB_0006fc4c;
          }
          dVar39 = dVar46;
          if (piVar32[0xd] != 0) {
            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;
          }
          dVar41 = dVar40;
          if (*(int *)(iVar26 + 0x34) != 0) {
            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;
          }
          iVar29 = *(int *)(iVar8 + 0x2c0);
          if (0 < iVar29) {
            pdVar19 = pdVar20;
            piVar13 = piVar32;
            pfVar22 = pfVar11;
            do {
              iVar27 = *piVar13;
              iVar15 = iVar26 + iVar27 * 0xc;
              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))
                 && ((uVar28 & 2) != 0)) {
                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);
                if (iVar27 == 4) {
                  dVar44 = (double)*pfVar22 - dVar44;
                }
                else {
                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;
                }
                dVar38 = dVar38 + dVar50;
                dVar45 = ABS(dVar44);
                dVar49 = dVar45 * dVar45 + dVar49;
                *pdVar19 = *pdVar19 + dVar45;
                pdVar20[0x40] = pdVar20[0x40] + dVar45;
                if (dVar47 < dVar45) {
                  dVar47 = ABS(dVar44);
                }
              }
              pdVar19 = pdVar19 + 1;
              piVar13 = piVar13 + 3;
              pfVar22 = pfVar22 + 1;
            } while (pdVar19 != pdVar20 + iVar29);
          }
          uVar30 = uVar30 + 1;
          pfVar11 = pfVar11 + iVar29;
          iVar12 = iVar12 + piVar33[0xb0] * 4;
        } while (uVar30 != uVar5);
      }
LAB_0006fc4c:
      uVar31 = uVar31 + 1;
      pcVar37 = *(code **)(pcVar36 + 0x339d4c);
    } while (uVar31 != uVar21);
    MVar3 = MagickTrue;
  }
LAB_0006fc88:
  (**(code **)(pcVar36 + 0x3395e4))(uVar6);
  (**(code **)(pcVar36 + 0x3395e4))(uVar18);
  dVar40 = *(double *)(iStack_1b0 + 0x1440);
  dVar50 = *(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700);
  *(double *)(iVar8 + 0x2d8) = pdVar20[0x40] / dVar38;
  *(double *)(iVar8 + 0x2e8) = dVar47 * dVar40;
  *(double *)(iVar8 + 0x2e0) = (dVar49 * dVar50) / dVar38;
  return MVar3;
}



int TransformImageColorspace(int param_1,int param_2,undefined4 param_3)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  double *pdVar7;
  float *pfVar8;
  int iVar9;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int *piVar10;
  int extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int iVar11;
  int iVar12;
  undefined *puVar13;
  undefined *puVar14;
  undefined4 uVar15;
  double *pdVar16;
  double *pdVar17;
  uint uVar18;
  float *pfVar19;
  undefined *puVar20;
  undefined4 uVar21;
  int *piVar22;
  int iVar23;
  int iVar24;
  uint uVar25;
  int iVar26;
  uint uVar27;
  int unaff_s0;
  uint uVar28;
  int *piVar29;
  int *piVar30;
  int iVar31;
  undefined *puVar32;
  code *pcVar33;
  code *pcVar34;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  float fVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  ulonglong uVar45;
  double dVar46;
  double dVar47;
  undefined8 uVar48;
  int iStack_1b0;
  double dStack_128;
  int iStack_120;
  undefined4 uStack_11c;
  int iStack_118;
  double *pdStack_114;
  double *pdStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  uint uStack_fc;
  uint uStack_f8;
  int iStack_f4;
  int iStack_ec;
  int iStack_e8;
  undefined *puStack_e4;
  uint uStack_e0;
  undefined *puStack_dc;
  uint uStack_d8;
  int *piStack_d4;
  undefined4 uStack_d0;
  undefined4 uStack_cc;
  undefined4 uStack_c8;
  code *pcStack_c4;
  undefined *puStack_b0;
  double *pdStack_a4;
  double dStack_a0;
  undefined *puStack_98;
  undefined *puStack_94;
  undefined4 uStack_90;
  undefined *puStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  uint uStack_80;
  uint uStack_7c;
  int iStack_78;
  int iStack_6c;
  int iStack_68;
  
  if (param_1 == 0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);
  }
  else {
    unaff_s0 = param_1;
    if (*(int *)(param_1 + 0x336c) == -0x54535255) {
      if (*(int *)(param_1 + 0x3350) == 0) {
        iVar2 = *(int *)(param_1 + 4);
      }
      else {
        (*(code *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);
        iVar2 = *(int *)(param_1 + 4);
      }
      if (iVar2 == param_2) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);
        return iVar2;
      }
      (*(code *)PTR_DeleteImageProfile_003a9828)
                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);
      (*(code *)PTR_DeleteImageProfile_003a9828)
                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);
      if (param_2 == 0) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);
        return iVar2;
      }
      if (1 < param_2 - 0x17U) {
        if (*(int *)(param_1 + 4) - 0x17U < 2) {
          iVar2 = 1;
        }
        else {
          iVar2 = FUN_0006b9c8(param_1,param_3);
          if (iVar2 == 0) {
            return 0;
          }
        }
        iVar3 = FUN_0006d178(param_1,param_2,param_3);
        if (iVar3 == 0) {
          return 0;
        }
        return iVar2;
      }
      iVar2 = FUN_0006b9c8(param_1,param_3);
      return iVar2;
    }
  }
  uVar15 = 0x5e6;
  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;
  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;
  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;
  puVar32 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)();
  puStack_b0 = puVar32 + 0x3416c0;
  dVar35 = *(double *)(puVar14 + 0x248);
  dVar44 = *(double *)(puVar13 + 0x248);
  piVar30 = *(int **)(puVar32 + 0x33a040);
  iStack_6c = *piVar30;
  if (dVar35 < dVar44) {
    iVar2 = *(int *)(puVar32 + 0x3396f8);
    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    dVar44 = dVar44 * dVar44;
  }
  else {
    iVar2 = *(int *)(puVar32 + 0x3396f8);
    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {
      if (dVar35 < dVar44) goto LAB_0006f470;
      dVar44 = dVar35 * dVar35;
    }
    else {
LAB_0006f270:
      dVar44 = *(double *)(iVar2 + -0x5ad0);
    }
  }
  uVar18 = *(uint *)(puVar13 + 0x1c);
  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {
    uVar18 = *(uint *)(puVar14 + 0x1c);
  }
  uVar4 = *(uint *)(puVar13 + 0x18);
  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {
    uVar4 = *(uint *)(puVar14 + 0x18);
  }
  iStack_68 = unaff_s0;
  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);
  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);
  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);
  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&
     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||
      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {
    (**(code **)(puStack_b0 + -0x7774))(7);
    uVar28 = uVar18;
    if ((int)uVar18 < 0) {
      uVar28 = uVar18 + 0x3f;
    }
    pdVar16 = (double *)((int)uVar28 >> 6);
    if (extraout_v1 < (int)pdVar16) {
      pdStack_a4 = pdVar16;
      (**(code **)(puStack_b0 + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      pdVar16 = pdStack_a4;
    }
    else {
      bVar1 = (int)uVar18 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_a4 = pdVar16;
      (**(code **)(puStack_b0 + -0x7774))(7);
      pdVar16 = pdStack_a4;
      if (extraout_v1_01 < (int)pdStack_a4) {
        pcVar33 = *(code **)(puStack_b0 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      pdVar16 = (double *)0x1;
    }
  }
  else {
    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);
    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {
      pcVar33 = *(code **)(puStack_b0 + -0x7774);
      if ((uint)uVar48 < 2) {
        uVar48 = (*pcVar33)(7);
        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;
        pcVar33 = *(code **)(puStack_b0 + -0x7774);
        if ((uint)uVar48 < 2) {
          pdVar16 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      pcVar33 = *(code **)(puStack_b0 + -0x7774);
    }
    uVar48 = (*pcVar33)(7);
    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&
       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {
LAB_0006f4b4:
      (*pcVar33)(7);
      pdVar16 = extraout_v1_00;
    }
    else {
      pdVar16 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar21 = 0;
  pdVar17 = &dStack_a0;
  iStack_78 = 1;
  dStack_a0 = dVar44;
  puStack_98 = puVar13;
  puStack_94 = puVar14;
  uStack_90 = uVar15;
  puStack_8c = puVar20;
  uStack_88 = uVar5;
  uStack_84 = uVar6;
  uStack_80 = uVar4;
  uStack_7c = uVar18;
  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);
  iVar2 = iStack_78;
  (**(code **)(puStack_b0 + -0x79bc))(uVar6);
  (**(code **)(puStack_b0 + -0x79bc))(uVar5);
  if (iStack_6c == *piVar30) {
    return iVar2;
  }
  pcVar33 = *(code **)(puStack_b0 + -0x784c);
  pcVar34 = FUN_0006f518;
  iVar3 = iStack_6c;
  (*pcVar33)();
  piVar29 = *(int **)(pcVar33 + 0x339d18);
  uVar28 = *(uint *)(iVar3 + 0x1c);
  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {
    uVar28 = *(uint *)((int)pdVar17 + 0x1c);
  }
  uVar27 = *(uint *)(iVar3 + 0x18);
  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {
    uVar27 = *(uint *)(pdVar17 + 3);
  }
  iStack_e8 = iVar2;
  iStack_ec = *piVar29;
  puStack_e4 = puVar14;
  uStack_e0 = uVar18;
  puStack_dc = puVar20;
  uStack_d8 = uVar4;
  piStack_d4 = piVar30;
  uStack_d0 = uVar15;
  uStack_cc = uVar5;
  uStack_c8 = uVar6;
  pcStack_c4 = pcVar34;
  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();
  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);
  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);
  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&
     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||
      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {
    (**(code **)(pcVar33 + 0x339c24))(7);
    uVar18 = uVar28;
    if ((int)uVar28 < 0) {
      uVar18 = uVar28 + 0x3f;
    }
    iVar2 = (int)uVar18 >> 6;
    if (extraout_v1_03 < iVar2) {
      (**(code **)(pcVar33 + 0x339c24))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = (int)uVar28 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar33 + 0x339c24))(7);
      if (extraout_v1_05 < iVar2) {
        pcVar34 = *(code **)(pcVar33 + 0x339c24);
        goto LAB_0006f8ac;
      }
    }
    else {
      iVar2 = 1;
    }
  }
  else {
    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);
    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {
      pcVar34 = *(code **)(pcVar33 + 0x339c24);
      if ((uint)uVar48 < 2) {
        uVar48 = (*pcVar34)(7);
        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;
        pcVar34 = *(code **)(pcVar33 + 0x339c24);
        if ((uint)uVar48 < 2) {
          iVar2 = 1;
          goto LAB_0006f624;
        }
      }
    }
    else {
LAB_0006f60c:
      pcVar34 = *(code **)(pcVar33 + 0x339c24);
    }
    uVar48 = (*pcVar34)(7);
    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&
       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {
LAB_0006f8ac:
      (*pcVar34)(7);
      iVar2 = extraout_v1_04;
    }
    else {
      iVar2 = 2;
    }
  }
LAB_0006f624:
  piVar22 = (int *)0x0;
  piVar30 = &iStack_120;
  iStack_f4 = 1;
  uStack_11c = 0;
  iStack_120 = 0;
  uStack_100 = 0;
  iStack_118 = iVar3;
  pdStack_114 = pdVar17;
  pdStack_110 = pdVar16;
  uStack_10c = uVar21;
  uStack_108 = uVar15;
  uStack_104 = uVar5;
  uStack_fc = uVar27;
  uStack_f8 = uVar28;
  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);
  iVar11 = iStack_f4;
  uVar6 = uStack_11c;
  iVar2 = iStack_120;
  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);
  (**(code **)(pcVar33 + 0x3399dc))(uVar5);
  (**(code **)(pcVar33 + 0x3399dc))(uVar15);
  if (0.0 <= dVar35) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);
    dStack_128 = dVar35;
  }
  else {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);
    dStack_128 = -(double)CONCAT44(iVar2,uVar6);
  }
  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;
  }
  else {
    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);
  }
  pdVar17 = pdVar16;
  do {
    pdVar7 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar44;
    pdVar17 = pdVar7;
  } while (pdVar16 + 0x41 != pdVar7);
  pdVar17 = (double *)0x0;
  if (0 < *(int *)(iVar3 + 0x2c0)) {
    piVar22 = *(int **)(iVar3 + 0x2d0);
    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;
    piVar10 = piVar22;
    do {
      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {
        pdVar17 = (double *)((int)pdVar17 + 1);
      }
      piVar10 = piVar10 + 3;
    } while (piVar10 != piVar30);
    if (pdVar17 != (double *)0x0) {
      dVar35 = (double)(int)pdVar17;
      if ((int)pdVar17 < 0) {
        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);
      }
      goto LAB_0006f778;
    }
  }
  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);
LAB_0006f778:
  iVar2 = *piVar29;
  pdVar16[0x40] = pdVar16[0x40] / dVar35;
  if (iStack_ec == iVar2) {
    return iVar11;
  }
  pcVar33 = *(code **)(pcVar33 + 0x339b4c);
  iVar2 = iStack_ec;
  (*pcVar33)();
  uVar18 = *(uint *)(iVar2 + 0x1c);
  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {
    uVar18 = piVar30[7];
  }
  uVar4 = *(uint *)(iVar2 + 0x18);
  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {
    uVar4 = piVar30[6];
  }
  uVar15 = (**(code **)(pcVar33 + 0x339e44))();
  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);
  if ((int)uVar18 < 1) {
    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);
    iVar3 = 1;
    dVar46 = 0.0;
    dVar35 = dVar46;
    dVar44 = dVar46;
  }
  else {
    iVar3 = *(int *)(pcVar33 + 0x338fd0);
    iVar11 = *(int *)(pcVar33 + 0x338fd0);
    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);
    dVar47 = *(double *)(iVar3 + 0x1438);
    uVar28 = 0;
    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);
    dVar46 = 0.0;
    pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    dVar35 = dVar46;
    dVar44 = dVar46;
    dVar37 = dVar47;
    do {
      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);
      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);
      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {
        iVar3 = 0;
        goto LAB_0006fc88;
      }
      if (0 < (int)uVar4) {
        uVar27 = 0;
        piVar29 = *(int **)(iVar2 + 0x2d0);
        dVar40 = *(double *)(iStack_1b0 + 0x1440);
        iVar31 = piVar29[0x13];
        dVar43 = *(double *)(iVar3 + 0x1438);
        fVar39 = *(float *)(iVar11 + 0x3708);
        do {
          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||
                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&
                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {
            uVar27 = uVar27 + 1;
            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);
            iVar9 = iVar9 + piVar30[0xb0] * 4;
            if (uVar27 == uVar4) goto LAB_0006fc4c;
          }
          dVar36 = dVar43;
          if (piVar29[0xd] != 0) {
            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;
          }
          dVar38 = dVar37;
          if (*(int *)(iVar23 + 0x34) != 0) {
            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;
          }
          iVar26 = *(int *)(iVar2 + 0x2c0);
          if (0 < iVar26) {
            pdVar16 = pdVar17;
            piVar10 = piVar29;
            pfVar19 = pfVar8;
            do {
              iVar24 = *piVar10;
              iVar12 = iVar23 + iVar24 * 0xc;
              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))
                 && ((uVar25 & 2) != 0)) {
                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);
                if (iVar24 == 4) {
                  dVar41 = (double)*pfVar19 - dVar41;
                }
                else {
                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;
                }
                dVar35 = dVar35 + dVar47;
                dVar42 = ABS(dVar41);
                dVar46 = dVar42 * dVar42 + dVar46;
                *pdVar16 = *pdVar16 + dVar42;
                pdVar17[0x40] = pdVar17[0x40] + dVar42;
                if (dVar44 < dVar42) {
                  dVar44 = ABS(dVar41);
                }
              }
              pdVar16 = pdVar16 + 1;
              piVar10 = piVar10 + 3;
              pfVar19 = pfVar19 + 1;
            } while (pdVar16 != pdVar17 + iVar26);
          }
          uVar27 = uVar27 + 1;
          pfVar8 = pfVar8 + iVar26;
          iVar9 = iVar9 + piVar30[0xb0] * 4;
        } while (uVar27 != uVar4);
      }
LAB_0006fc4c:
      uVar28 = uVar28 + 1;
      pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    } while (uVar28 != uVar18);
    iVar3 = 1;
  }
LAB_0006fc88:
  (**(code **)(pcVar33 + 0x3395e4))(uVar5);
  (**(code **)(pcVar33 + 0x3395e4))(uVar15);
  dVar37 = *(double *)(iStack_1b0 + 0x1440);
  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);
  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;
  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;
  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;
  return iVar3;
}


lui gp,0x34
addiu gp,gp,0x18ec
addu gp,gp,t9
addiu sp,sp,-0x38
sw gp,0x18(sp)
sw ra,0x34(sp)
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s1,0x28(sp)
beq a0,zero,0x0006f19c
_sw s0,0x24(sp)
lui v0,0xabac
lw v1,0x336c(a0)
ori v0,v0,0xadab
bne v1,v0,0x0006f1c0
_or s0,a0,zero
lw v0,0x3350(a0)
or s1,a1,zero
bne v0,zero,0x0006f100
_or s2,a2,zero
lw v0,0x4(s0)
beq v0,s1,0x0006f144
_lw ra,0x34(sp)
lw a1,-0x7fc8(gp)
or a0,s0,zero
lw t9,-0x7088(gp)
jalr t9
_addiu a1,a1,-0x5890
or a0,s0,zero
lw gp,0x18(sp)
lw a1,-0x7fc8(gp)
lw t9,-0x7088(gp)
jalr t9
_addiu a1,a1,-0x588c
beq s1,zero,0x0006f0d4
_lw gp,0x18(sp)
addiu v0,s1,-0x17
sltiu v0,v0,0x2
bne v0,zero,0x0006f174
_lw t9,-0x7f78(gp)
lw v0,0x4(s0)
addiu v0,v0,-0x17
sltiu v0,v0,0x2
bne v0,zero,0x0006f16c
_or a1,s2,zero
addiu t9,t9,-0x4638
bal 0x0006b9c8
_or a0,s0,zero
lw gp,0x18(sp)
beq v0,zero,0x0006f0b0
_or s3,v0,zero
lw t9,-0x7f78(gp)
or a2,s2,zero
or a1,s1,zero
addiu t9,t9,-0x2e88
bal 0x0006d178
_or a0,s0,zero
bne v0,zero,0x0006f0b8
_lw ra,0x34(sp)
or s3,zero,zero
lw ra,0x34(sp)
or v0,s3,zero
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
lw ra,0x34(sp)
or a2,s2,zero
lw s3,0x30(sp)
or a0,s0,zero
lw s2,0x2c(sp)
or a1,zero,zero
lw s1,0x28(sp)
lw s0,0x24(sp)
lw t9,-0x7b70(gp)
jr t9
_addiu sp,sp,0x38
addiu v0,a0,0x340
lw a2,-0x7fc8(gp)
lw a1,-0x7fc8(gp)
li a3,0x5e8
lw t9,-0x76d0(gp)
ori a0,zero,0x8000
sw v0,0x14(sp)
addiu a2,a2,-0x402c
lw v0,-0x7fcc(gp)
addiu a1,a1,-0x5970
addiu v0,v0,-0x62ac
jalr t9
_sw v0,0x10(sp)
lw v0,0x4(s0)
bne v0,s1,0x0006f020
_lw gp,0x18(sp)
lw ra,0x34(sp)
or a2,s2,zero
lw s3,0x30(sp)
or a1,s1,zero
lw s2,0x2c(sp)
or a0,s0,zero
lw s1,0x28(sp)
lw s0,0x24(sp)
lw t9,-0x7b70(gp)
jr t9
_addiu sp,sp,0x38
b 0x0006f090
_li s3,0x1
or a1,s2,zero
lw ra,0x34(sp)
or a0,s0,zero
lw s3,0x30(sp)
lw s2,0x2c(sp)
addiu t9,t9,-0x4638
lw s1,0x28(sp)
lw s0,0x24(sp)
b 0x0006b9c8
_addiu sp,sp,0x38
lw a3,-0x7fc8(gp)
li a2,0x5e5
lw a1,-0x7fc8(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x4010
addiu a1,a1,-0x5970
jalr t9
_addiu a0,a0,0xdd0
lw a3,-0x7fc8(gp)
li a2,0x5e6
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x4010
addiu a1,a1,-0x5970
jalr t9
_addiu a0,a0,-0x3784
nop
nop
nop
(translation_unit "int TransformImageColorspace(int param_1,int param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}\n\n" (function_definition "int TransformImageColorspace(int param_1,int param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}" primitive_type (function_declarator "TransformImageColorspace(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "float *pfVar8;" primitive_type (pointer_declarator "*pfVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "double *extraout_v1_00;" primitive_type (pointer_declarator "*extraout_v1_00" * identifier) ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "int extraout_v1_04;" primitive_type identifier ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "float *pfVar19;" primitive_type (pointer_declarator "*pfVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "float fVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "ulonglong uVar45;" type_identifier identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "undefined8 uVar48;" type_identifier identifier ;) (declaration "int iStack_1b0;" primitive_type identifier ;) (declaration "double dStack_128;" primitive_type identifier ;) (declaration "int iStack_120;" primitive_type identifier ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "double *pdStack_114;" primitive_type (pointer_declarator "*pdStack_114" * identifier) ;) (declaration "double *pdStack_110;" primitive_type (pointer_declarator "*pdStack_110" * identifier) ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "uint uStack_fc;" type_identifier identifier ;) (declaration "uint uStack_f8;" type_identifier identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "undefined *puStack_e4;" type_identifier (pointer_declarator "*puStack_e4" * identifier) ;) (declaration "uint uStack_e0;" type_identifier identifier ;) (declaration "undefined *puStack_dc;" type_identifier (pointer_declarator "*puStack_dc" * identifier) ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "undefined4 uStack_cc;" type_identifier identifier ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "undefined *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "double *pdStack_a4;" primitive_type (pointer_declarator "*pdStack_a4" * identifier) ;) (declaration "double dStack_a0;" primitive_type identifier ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "uint uStack_80;" type_identifier identifier ;) (declaration "uint uStack_7c;" type_identifier identifier ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "int iStack_68;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" ( (binary_expression "PTR_LAB_003a88e0 + 0xdd0" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal) , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier + number_literal) ))) ;) }) (else_clause "else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" { (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" * (cast_expression "(int *)(param_1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x336c)" ( (binary_expression "param_1 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }" { (if_statement "if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x3350) == 0)" ( (binary_expression "*(int *)(param_1 + 0x3350) == 0" (pointer_expression "*(int *)(param_1 + 0x3350)" * (cast_expression "(int *)(param_1 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3350)" ( (binary_expression "param_1 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(param_1 + 4);\n      }" { (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" else (compound_statement "{\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" ( number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar2 == param_2) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }" if (parenthesized_expression "(iVar2 == param_2)" ( (binary_expression "iVar2 == param_2" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }" { comment comment (expression_statement "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);" (assignment_expression "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3)" identifier = (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" ( (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" * (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" ( (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" * (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" ( (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" * (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c" identifier + number_literal) ))) ;) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }" { comment comment (expression_statement "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);" (assignment_expression "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3)" identifier = (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" ( (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" * (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0,param_3)" ( identifier , number_literal , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" if (parenthesized_expression "(1 < param_2 - 0x17U)" ( (binary_expression "1 < param_2 - 0x17U" number_literal < (binary_expression "param_2 - 0x17U" identifier - number_literal)) )) (compound_statement "{\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" { (if_statement "if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(param_1 + 4) - 0x17U < 2)" ( (binary_expression "*(int *)(param_1 + 4) - 0x17U < 2" (binary_expression "*(int *)(param_1 + 4) - 0x17U" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n          iVar2 = 1;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" { (expression_statement "iVar2 = FUN_0006b9c8(param_1,param_3);" (assignment_expression "iVar2 = FUN_0006b9c8(param_1,param_3)" identifier = (call_expression "FUN_0006b9c8(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "iVar3 = FUN_0006d178(param_1,param_2,param_3);" (assignment_expression "iVar3 = FUN_0006d178(param_1,param_2,param_3)" identifier = (call_expression "FUN_0006d178(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar2 = FUN_0006b9c8(param_1,param_3);" (assignment_expression "iVar2 = FUN_0006b9c8(param_1,param_3)" identifier = (call_expression "FUN_0006b9c8(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "uVar15 = 0x5e6;" (assignment_expression "uVar15 = 0x5e6" identifier = number_literal) ;) (expression_statement "puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;" (assignment_expression "puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier + number_literal)) ;) (expression_statement "puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal)) ;) (expression_statement "puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;" (assignment_expression "puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier + number_literal)) ;) (expression_statement "puVar32 = PTR___assert_fail_003a9608;" (assignment_expression "puVar32 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)();" (call_expression "(*(code *)PTR___assert_fail_003a9608)()" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_b0 = puVar32 + 0x3416c0;" (assignment_expression "puStack_b0 = puVar32 + 0x3416c0" identifier = (binary_expression "puVar32 + 0x3416c0" identifier + number_literal)) ;) (expression_statement "dVar35 = *(double *)(puVar14 + 0x248);" (assignment_expression "dVar35 = *(double *)(puVar14 + 0x248)" identifier = (pointer_expression "*(double *)(puVar14 + 0x248)" * (cast_expression "(double *)(puVar14 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x248)" ( (binary_expression "puVar14 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(puVar13 + 0x248);" (assignment_expression "dVar44 = *(double *)(puVar13 + 0x248)" identifier = (pointer_expression "*(double *)(puVar13 + 0x248)" * (cast_expression "(double *)(puVar13 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x248)" ( (binary_expression "puVar13 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = *(int **)(puVar32 + 0x33a040);" (assignment_expression "piVar30 = *(int **)(puVar32 + 0x33a040)" identifier = (pointer_expression "*(int **)(puVar32 + 0x33a040)" * (cast_expression "(int **)(puVar32 + 0x33a040)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a040)" ( (binary_expression "puVar32 + 0x33a040" identifier + number_literal) ))))) ;) (expression_statement "iStack_6c = *piVar30;" (assignment_expression "iStack_6c = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (if_statement "if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" if (parenthesized_expression "(dVar35 < dVar44)" ( (binary_expression "dVar35 < dVar44" identifier < identifier) )) (compound_statement "{\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }" { (expression_statement "iVar2 = *(int *)(puVar32 + 0x3396f8);" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x3396f8)" identifier = (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" if (parenthesized_expression "(dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8))" ( (binary_expression "dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" identifier <= (pointer_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(puVar32 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) )))) + number_literal) ))))) )) (goto_statement "goto LAB_0006f270;" goto statement_identifier ;)) (labeled_statement "LAB_0006f470:\n    dVar44 = dVar44 * dVar44;" statement_identifier : (expression_statement "dVar44 = dVar44 * dVar44;" (assignment_expression "dVar44 = dVar44 * dVar44" identifier = (binary_expression "dVar44 * dVar44" identifier * identifier)) ;)) }) (else_clause "else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" else (compound_statement "{\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" { (expression_statement "iVar2 = *(int *)(puVar32 + 0x3396f8);" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x3396f8)" identifier = (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" if (parenthesized_expression "(*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35)" ( (binary_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35" (pointer_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(puVar32 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }" { (if_statement "if (dVar35 < dVar44) goto LAB_0006f470;" if (parenthesized_expression "(dVar35 < dVar44)" ( (binary_expression "dVar35 < dVar44" identifier < identifier) )) (goto_statement "goto LAB_0006f470;" goto statement_identifier ;)) (expression_statement "dVar44 = dVar35 * dVar35;" (assignment_expression "dVar44 = dVar35 * dVar35" identifier = (binary_expression "dVar35 * dVar35" identifier * identifier)) ;) }) (else_clause "else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" else (compound_statement "{\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" { (labeled_statement "LAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);" statement_identifier : (expression_statement "dVar44 = *(double *)(iVar2 + -0x5ad0);" (assignment_expression "dVar44 = *(double *)(iVar2 + -0x5ad0)" identifier = (pointer_expression "*(double *)(iVar2 + -0x5ad0)" * (cast_expression "(double *)(iVar2 + -0x5ad0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x5ad0)" ( (binary_expression "iVar2 + -0x5ad0" identifier + number_literal) ))))) ;)) }))) }))) (expression_statement "uVar18 = *(uint *)(puVar13 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(puVar13 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar13 + 0x1c)" * (cast_expression "(uint *)(puVar13 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c))" ( (binary_expression "*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)" (pointer_expression "*(uint *)(puVar13 + 0x1c)" * (cast_expression "(uint *)(puVar13 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar14 + 0x1c)" * (cast_expression "(uint *)(puVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1c)" ( (binary_expression "puVar14 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }" { (expression_statement "uVar18 = *(uint *)(puVar14 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(puVar14 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar14 + 0x1c)" * (cast_expression "(uint *)(puVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1c)" ( (binary_expression "puVar14 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar4 = *(uint *)(puVar13 + 0x18);" (assignment_expression "uVar4 = *(uint *)(puVar13 + 0x18)" identifier = (pointer_expression "*(uint *)(puVar13 + 0x18)" * (cast_expression "(uint *)(puVar13 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18))" ( (binary_expression "*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)" (pointer_expression "*(uint *)(puVar13 + 0x18)" * (cast_expression "(uint *)(puVar13 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar14 + 0x18)" * (cast_expression "(uint *)(puVar14 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x18)" ( (binary_expression "puVar14 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }" { (expression_statement "uVar4 = *(uint *)(puVar14 + 0x18);" (assignment_expression "uVar4 = *(uint *)(puVar14 + 0x18)" identifier = (pointer_expression "*(uint *)(puVar14 + 0x18)" * (cast_expression "(uint *)(puVar14 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x18)" ( (binary_expression "puVar14 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iStack_68 = unaff_s0;" (assignment_expression "iStack_68 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);" (assignment_expression "uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20)" identifier = (call_expression "(**(code **)(puVar32 + 0x33a564))(puVar13,puVar20)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a564))" ( (pointer_expression "**(code **)(puVar32 + 0x33a564)" * (pointer_expression "*(code **)(puVar32 + 0x33a564)" * (cast_expression "(code **)(puVar32 + 0x33a564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a564)" ( (binary_expression "puVar32 + 0x33a564" identifier + number_literal) ))))) )) (argument_list "(puVar13,puVar20)" ( identifier , identifier )))) ;) (expression_statement "uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);" (assignment_expression "uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x715c))" ( (pointer_expression "**(code **)(puStack_b0 + -0x715c)" * (pointer_expression "*(code **)(puStack_b0 + -0x715c)" * (cast_expression "(code **)(puStack_b0 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x715c)" ( (binary_expression "puStack_b0 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(puVar14,puVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))" ( (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar28 = uVar18;" (assignment_expression "uVar28 = uVar18" identifier = identifier) ;) (if_statement "if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar18 < 0)" ( (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar28 = uVar18 + 0x3f;\n    }" { (expression_statement "uVar28 = uVar18 + 0x3f;" (assignment_expression "uVar28 = uVar18 + 0x3f" identifier = (binary_expression "uVar18 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar16 = (double *)((int)uVar28 >> 6);" (assignment_expression "pdVar16 = (double *)((int)uVar28 >> 6)" identifier = (cast_expression "(double *)((int)uVar28 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)uVar28 >> 6)" ( (binary_expression "(int)uVar28 >> 6" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < (int)pdVar16)" ( (binary_expression "extraout_v1 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }" { (expression_statement "pdStack_a4 = pdVar16;" (assignment_expression "pdStack_a4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_02 < 2;" (assignment_expression "bVar1 = extraout_v1_02 < 2" identifier = (binary_expression "extraout_v1_02 < 2" identifier < number_literal)) ;) (expression_statement "pdVar16 = pdStack_a4;" (assignment_expression "pdVar16 = pdStack_a4" identifier = identifier) ;) }) (else_clause "else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar18 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar18 < 0x80;" (assignment_expression "bVar1 = (int)uVar18 < 0x80" identifier = (binary_expression "(int)uVar18 < 0x80" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" { (expression_statement "pdStack_a4 = pdVar16;" (assignment_expression "pdStack_a4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar16 = pdStack_a4;" (assignment_expression "pdVar16 = pdStack_a4" identifier = identifier) ;) (if_statement "if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" if (parenthesized_expression "(extraout_v1_01 < (int)pdStack_a4)" ( (binary_expression "extraout_v1_01 < (int)pdStack_a4" identifier < (cast_expression "(int)pdStack_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" { (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f4b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      pdVar16 = (double *)0x1;\n    }" else (compound_statement "{\n      pdVar16 = (double *)0x1;\n    }" { (expression_statement "pdVar16 = (double *)0x1;" (assignment_expression "pdVar16 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" { (expression_statement "uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);" (assignment_expression "uVar48 = (**(code **)(puStack_b0 + -0x7774))(7)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" { (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" { (expression_statement "uVar48 = (*pcVar33)(7);" (assignment_expression "uVar48 = (*pcVar33)(7)" identifier = (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f310;" goto statement_identifier ;)) (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }" { (expression_statement "pdVar16 = (double *)0x1;" (assignment_expression "pdVar16 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0006f328;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" else (compound_statement "{\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" { (labeled_statement "LAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);" statement_identifier : (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar48 = (*pcVar33)(7);" (assignment_expression "uVar48 = (*pcVar33)(7)" identifier = (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2))" ( (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)" (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)" ( (comma_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) , (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }" { (labeled_statement "LAB_0006f4b4:\n      (*pcVar33)(7);" statement_identifier : (expression_statement "(*pcVar33)(7);" (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "pdVar16 = extraout_v1_00;" (assignment_expression "pdVar16 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      pdVar16 = (double *)0x2;\n    }" else (compound_statement "{\n      pdVar16 = (double *)0x2;\n    }" { (expression_statement "pdVar16 = (double *)0x2;" (assignment_expression "pdVar16 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006f328:\n  uVar21 = 0;" statement_identifier : (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;)) (expression_statement "pdVar17 = &dStack_a0;" (assignment_expression "pdVar17 = &dStack_a0" identifier = (pointer_expression "&dStack_a0" & identifier)) ;) (expression_statement "iStack_78 = 1;" (assignment_expression "iStack_78 = 1" identifier = number_literal) ;) (expression_statement "dStack_a0 = dVar44;" (assignment_expression "dStack_a0 = dVar44" identifier = identifier) ;) (expression_statement "puStack_98 = puVar13;" (assignment_expression "puStack_98 = puVar13" identifier = identifier) ;) (expression_statement "puStack_94 = puVar14;" (assignment_expression "puStack_94 = puVar14" identifier = identifier) ;) (expression_statement "uStack_90 = uVar15;" (assignment_expression "uStack_90 = uVar15" identifier = identifier) ;) (expression_statement "puStack_8c = puVar20;" (assignment_expression "puStack_8c = puVar20" identifier = identifier) ;) (expression_statement "uStack_88 = uVar5;" (assignment_expression "uStack_88 = uVar5" identifier = identifier) ;) (expression_statement "uStack_84 = uVar6;" (assignment_expression "uStack_84 = uVar6" identifier = identifier) ;) (expression_statement "uStack_80 = uVar4;" (assignment_expression "uStack_80 = uVar4" identifier = identifier) ;) (expression_statement "uStack_7c = uVar18;" (assignment_expression "uStack_7c = uVar18" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7718))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7718)" * (pointer_expression "*(code **)(puStack_b0 + -0x7718)" * (cast_expression "(code **)(puStack_b0 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7718)" ( (binary_expression "puStack_b0 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" ( (binary_expression "*(int *)(puStack_b0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(puStack_b0 + -0x7f78)" * (cast_expression "(int *)(puStack_b0 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_b0 + -0x7f78)" ( (binary_expression "puStack_b0 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = iStack_78;" (assignment_expression "iVar2 = iStack_78" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" * (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" * (cast_expression "(code **)(puStack_b0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x79bc)" ( (binary_expression "puStack_b0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar5);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" * (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" * (cast_expression "(code **)(puStack_b0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x79bc)" ( (binary_expression "puStack_b0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iStack_6c == *piVar30) {\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_6c == *piVar30)" ( (binary_expression "iStack_6c == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x784c);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x784c)" * (cast_expression "(code **)(puStack_b0 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x784c)" ( (binary_expression "puStack_b0 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = FUN_0006f518;" (assignment_expression "pcVar34 = FUN_0006f518" identifier = identifier) ;) (expression_statement "iVar3 = iStack_6c;" (assignment_expression "iVar3 = iStack_6c" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar29 = *(int **)(pcVar33 + 0x339d18);" (assignment_expression "piVar29 = *(int **)(pcVar33 + 0x339d18)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x339d18)" * (cast_expression "(int **)(pcVar33 + 0x339d18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d18)" ( (binary_expression "pcVar33 + 0x339d18" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = *(uint *)(iVar3 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c))" ( (binary_expression "*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)((int)pdVar17 + 0x1c)" * (cast_expression "(uint *)((int)pdVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + 0x1c)" ( (binary_expression "(int)pdVar17 + 0x1c" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" { (expression_statement "uVar28 = *(uint *)((int)pdVar17 + 0x1c);" (assignment_expression "uVar28 = *(uint *)((int)pdVar17 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pdVar17 + 0x1c)" * (cast_expression "(uint *)((int)pdVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + 0x1c)" ( (binary_expression "(int)pdVar17 + 0x1c" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "uVar27 = *(uint *)(iVar3 + 0x18);" (assignment_expression "uVar27 = *(uint *)(iVar3 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3))" ( (binary_expression "*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)" (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(pdVar17 + 3)" * (cast_expression "(uint *)(pdVar17 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar17 + 3)" ( (binary_expression "pdVar17 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" { (expression_statement "uVar27 = *(uint *)(pdVar17 + 3);" (assignment_expression "uVar27 = *(uint *)(pdVar17 + 3)" identifier = (pointer_expression "*(uint *)(pdVar17 + 3)" * (cast_expression "(uint *)(pdVar17 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar17 + 3)" ( (binary_expression "pdVar17 + 3" identifier + number_literal) ))))) ;) })) (expression_statement "iStack_e8 = iVar2;" (assignment_expression "iStack_e8 = iVar2" identifier = identifier) ;) (expression_statement "iStack_ec = *piVar29;" (assignment_expression "iStack_ec = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "puStack_e4 = puVar14;" (assignment_expression "puStack_e4 = puVar14" identifier = identifier) ;) (expression_statement "uStack_e0 = uVar18;" (assignment_expression "uStack_e0 = uVar18" identifier = identifier) ;) (expression_statement "puStack_dc = puVar20;" (assignment_expression "puStack_dc = puVar20" identifier = identifier) ;) (expression_statement "uStack_d8 = uVar4;" (assignment_expression "uStack_d8 = uVar4" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar30;" (assignment_expression "piStack_d4 = piVar30" identifier = identifier) ;) (expression_statement "uStack_d0 = uVar15;" (assignment_expression "uStack_d0 = uVar15" identifier = identifier) ;) (expression_statement "uStack_cc = uVar5;" (assignment_expression "uStack_cc = uVar5" identifier = identifier) ;) (expression_statement "uStack_c8 = uVar6;" (assignment_expression "uStack_c8 = uVar6" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar34;" (assignment_expression "pcStack_c4 = pcVar34" identifier = identifier) ;) (expression_statement "uVar15 = (**(code **)(pcVar33 + 0x33a23c))();" (assignment_expression "uVar15 = (**(code **)(pcVar33 + 0x33a23c))()" identifier = (call_expression "(**(code **)(pcVar33 + 0x33a23c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar33 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar33 + 0x33a23c)" * (cast_expression "(code **)(pcVar33 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a23c)" ( (binary_expression "pcVar33 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);" (assignment_expression "uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" identifier = (call_expression "(**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar33 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar33 + 0x33a23c)" * (cast_expression "(code **)(pcVar33 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a23c)" ( (binary_expression "pcVar33 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "(pdVar17,uVar21)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }" { (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar18 = uVar28;" (assignment_expression "uVar18 = uVar28" identifier = identifier) ;) (if_statement "if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar28 < 0)" ( (binary_expression "(int)uVar28 < 0" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = uVar28 + 0x3f;\n    }" { (expression_statement "uVar18 = uVar28 + 0x3f;" (assignment_expression "uVar18 = uVar28 + 0x3f" identifier = (binary_expression "uVar28 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar2 = (int)uVar18 >> 6;" (assignment_expression "iVar2 = (int)uVar18 >> 6" identifier = (binary_expression "(int)uVar18 >> 6" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < iVar2)" ( (binary_expression "extraout_v1_03 < iVar2" identifier < identifier) )) (compound_statement "{\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" identifier = (binary_expression "extraout_v1_06 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar28 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar28 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar28 < 0x80;" (assignment_expression "bVar1 = (int)uVar28 < 0x80" identifier = (binary_expression "(int)uVar28 < 0x80" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }" { (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" if (parenthesized_expression "(extraout_v1_05 < iVar2)" ( (binary_expression "extraout_v1_05 < iVar2" identifier < identifier) )) (compound_statement "{\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" { (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f8ac;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar2 = 1;\n    }" else (compound_statement "{\n      iVar2 = 1;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" else (compound_statement "{\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" { (expression_statement "uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);" (assignment_expression "uVar48 = (**(code **)(pcVar33 + 0x339c24))(7)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }" { (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }" { (expression_statement "uVar48 = (*pcVar34)(7);" (assignment_expression "uVar48 = (*pcVar34)(7)" identifier = (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f60c;" goto statement_identifier ;)) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006f624;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" else (compound_statement "{\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" { (labeled_statement "LAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);" statement_identifier : (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar48 = (*pcVar34)(7);" (assignment_expression "uVar48 = (*pcVar34)(7)" identifier = (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2))" ( (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)" (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)" ( (comma_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) , (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }" { (labeled_statement "LAB_0006f8ac:\n      (*pcVar34)(7);" statement_identifier : (expression_statement "(*pcVar34)(7);" (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar2 = extraout_v1_04;" (assignment_expression "iVar2 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006f624:\n  piVar22 = (int *)0x0;" statement_identifier : (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piVar30 = &iStack_120;" (assignment_expression "piVar30 = &iStack_120" identifier = (pointer_expression "&iStack_120" & identifier)) ;) (expression_statement "iStack_f4 = 1;" (assignment_expression "iStack_f4 = 1" identifier = number_literal) ;) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" identifier = number_literal) ;) (expression_statement "iStack_120 = 0;" (assignment_expression "iStack_120 = 0" identifier = number_literal) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "iStack_118 = iVar3;" (assignment_expression "iStack_118 = iVar3" identifier = identifier) ;) (expression_statement "pdStack_114 = pdVar17;" (assignment_expression "pdStack_114 = pdVar17" identifier = identifier) ;) (expression_statement "pdStack_110 = pdVar16;" (assignment_expression "pdStack_110 = pdVar16" identifier = identifier) ;) (expression_statement "uStack_10c = uVar21;" (assignment_expression "uStack_10c = uVar21" identifier = identifier) ;) (expression_statement "uStack_108 = uVar15;" (assignment_expression "uStack_108 = uVar15" identifier = identifier) ;) (expression_statement "uStack_104 = uVar5;" (assignment_expression "uStack_104 = uVar5" identifier = identifier) ;) (expression_statement "uStack_fc = uVar27;" (assignment_expression "uStack_fc = uVar27" identifier = identifier) ;) (expression_statement "uStack_f8 = uVar28;" (assignment_expression "uStack_f8 = uVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);" (call_expression "(**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c80))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c80)" * (pointer_expression "*(code **)(pcVar33 + 0x339c80)" * (cast_expression "(code **)(pcVar33 + 0x339c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c80)" ( (binary_expression "pcVar33 + 0x339c80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2)" ( (binary_expression "*(int *)(pcVar33 + 0x339420) + 0x2498" (pointer_expression "*(int *)(pcVar33 + 0x339420)" * (cast_expression "(int *)(pcVar33 + 0x339420)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x339420)" ( (binary_expression "pcVar33 + 0x339420" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar11 = iStack_f4;" (assignment_expression "iVar11 = iStack_f4" identifier = identifier) ;) (expression_statement "uVar6 = uStack_11c;" (assignment_expression "uVar6 = uStack_11c" identifier = identifier) ;) (expression_statement "iVar2 = iStack_120;" (assignment_expression "iVar2 = iStack_120" identifier = identifier) ;) (expression_statement "dVar35 = (double)CONCAT44(iStack_120,uStack_11c);" (assignment_expression "dVar35 = (double)CONCAT44(iStack_120,uStack_11c)" identifier = (cast_expression "(double)CONCAT44(iStack_120,uStack_11c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iStack_120,uStack_11c)" identifier (argument_list "(iStack_120,uStack_11c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar5);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar33 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar33 + 0x3399dc)" * (cast_expression "(code **)(pcVar33 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3399dc)" ( (binary_expression "pcVar33 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar15);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar15)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar33 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar33 + 0x3399dc)" * (cast_expression "(code **)(pcVar33 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3399dc)" ( (binary_expression "pcVar33 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" if (parenthesized_expression "(0.0 <= dVar35)" ( (binary_expression "0.0 <= dVar35" number_literal <= identifier) )) (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_128 = dVar35;" (assignment_expression "dStack_128 = dVar35" identifier = identifier) ;) }) (else_clause "else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" else (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1a78" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_128 = -(double)CONCAT44(iVar2,uVar6);" (assignment_expression "dStack_128 = -(double)CONCAT44(iVar2,uVar6)" identifier = (unary_expression "-(double)CONCAT44(iVar2,uVar6)" - (cast_expression "(double)CONCAT44(iVar2,uVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar2,uVar6)" identifier (argument_list "(iVar2,uVar6)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128)" ( (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35" identifier = (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" else (compound_statement "{\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" { (expression_statement "dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);" (assignment_expression "dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" identifier = (binary_expression "dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar17 = pdVar16;" (assignment_expression "pdVar17 = pdVar16" identifier = identifier) ;) (do_statement "do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);" do (compound_statement "{\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  }" { (expression_statement "pdVar7 = pdVar17 + 1;" (assignment_expression "pdVar7 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar17 = *pdVar17 * dVar44;" (assignment_expression "*pdVar17 = *pdVar17 * dVar44" (pointer_expression "*pdVar17" * identifier) = (binary_expression "*pdVar17 * dVar44" (pointer_expression "*pdVar17" * identifier) * identifier)) ;) (expression_statement "pdVar17 = pdVar7;" (assignment_expression "pdVar17 = pdVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar16 + 0x41 != pdVar7)" ( (binary_expression "pdVar16 + 0x41 != pdVar7" (binary_expression "pdVar16 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "pdVar17 = (double *)0x0;" (assignment_expression "pdVar17 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar3 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x2c0)" * (cast_expression "(int *)(iVar3 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c0)" ( (binary_expression "iVar3 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" { (expression_statement "piVar22 = *(int **)(iVar3 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar3 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar3 + 0x2d0)" * (cast_expression "(int **)(iVar3 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;" (assignment_expression "piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3" identifier = (binary_expression "piVar22 + *(int *)(iVar3 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar3 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar3 + 0x2c0)" * (cast_expression "(int *)(iVar3 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c0)" ( (binary_expression "iVar3 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar10 = piVar22;" (assignment_expression "piVar10 = piVar22" identifier = identifier) ;) (do_statement "do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);" do (compound_statement "{\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    }" { (if_statement "if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" if (parenthesized_expression "((piVar22[*piVar10 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar22[*piVar10 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar22[*piVar10 * 3 + 1] & 2U)" ( (binary_expression "piVar22[*piVar10 * 3 + 1] & 2U" (subscript_expression "piVar22[*piVar10 * 3 + 1]" identifier [ (binary_expression "*piVar10 * 3 + 1" (binary_expression "*piVar10 * 3" (pointer_expression "*piVar10" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" { (expression_statement "pdVar17 = (double *)((int)pdVar17 + 1);" (assignment_expression "pdVar17 = (double *)((int)pdVar17 + 1)" identifier = (cast_expression "(double *)((int)pdVar17 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + 1)" ( (binary_expression "(int)pdVar17 + 1" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "piVar10 = piVar10 + 3;" (assignment_expression "piVar10 = piVar10 + 3" identifier = (binary_expression "piVar10 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar10 != piVar30)" ( (binary_expression "piVar10 != piVar30" identifier != identifier) )) ;) (if_statement "if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" if (parenthesized_expression "(pdVar17 != (double *)0x0)" ( (binary_expression "pdVar17 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" { (expression_statement "dVar35 = (double)(int)pdVar17;" (assignment_expression "dVar35 = (double)(int)pdVar17" identifier = (cast_expression "(double)(int)pdVar17" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }" if (parenthesized_expression "((int)pdVar17 < 0)" ( (binary_expression "(int)pdVar17 < 0" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }" { (expression_statement "dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);" (assignment_expression "dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" identifier = (binary_expression "dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1418" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_0006f778;" goto statement_identifier ;) })) })) (expression_statement "dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);" (assignment_expression "dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_0006f778:\n  iVar2 = *piVar29;" statement_identifier : (expression_statement "iVar2 = *piVar29;" (assignment_expression "iVar2 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;)) (expression_statement "pdVar16[0x40] = pdVar16[0x40] / dVar35;" (assignment_expression "pdVar16[0x40] = pdVar16[0x40] / dVar35" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar16[0x40] / dVar35" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (iStack_ec == iVar2) {\n    return iVar11;\n  }" if (parenthesized_expression "(iStack_ec == iVar2)" ( (binary_expression "iStack_ec == iVar2" identifier == identifier) )) (compound_statement "{\n    return iVar11;\n  }" { (return_statement "return iVar11;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x339b4c);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x339b4c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339b4c)" * (cast_expression "(code **)(pcVar33 + 0x339b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339b4c)" ( (binary_expression "pcVar33 + 0x339b4c" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iStack_ec;" (assignment_expression "iVar2 = iStack_ec" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar18 = *(uint *)(iVar2 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x1c)" * (cast_expression "(uint *)(iVar2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7])" ( (binary_expression "*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]" (pointer_expression "*(uint *)(iVar2 + 0x1c)" * (cast_expression "(uint *)(iVar2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar30[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar30[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar18 = piVar30[7];\n  }" { (expression_statement "uVar18 = piVar30[7];" (assignment_expression "uVar18 = piVar30[7]" identifier = (subscript_expression "piVar30[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6])" ( (binary_expression "*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]" (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar30[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar30[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar4 = piVar30[6];\n  }" { (expression_statement "uVar4 = piVar30[6];" (assignment_expression "uVar4 = piVar30[6]" identifier = (subscript_expression "piVar30[6]" identifier [ number_literal ])) ;) })) (expression_statement "uVar15 = (**(code **)(pcVar33 + 0x339e44))();" (assignment_expression "uVar15 = (**(code **)(pcVar33 + 0x339e44))()" identifier = (call_expression "(**(code **)(pcVar33 + 0x339e44))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar33 + 0x339e44)" * (pointer_expression "*(code **)(pcVar33 + 0x339e44)" * (cast_expression "(code **)(pcVar33 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339e44)" ( (binary_expression "pcVar33 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);" (assignment_expression "uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar33 + 0x339e44)" * (pointer_expression "*(code **)(pcVar33 + 0x339e44)" * (cast_expression "(code **)(pcVar33 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339e44)" ( (binary_expression "pcVar33 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "(piVar30,piVar22)" ( identifier , identifier )))) ;) (if_statement "if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" if (parenthesized_expression "((int)uVar18 < 1)" ( (binary_expression "(int)uVar18 < 1" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }" { (expression_statement "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (expression_statement "dVar35 = dVar46;" (assignment_expression "dVar35 = dVar46" identifier = identifier) ;) (expression_statement "dVar44 = dVar46;" (assignment_expression "dVar44 = dVar46" identifier = identifier) ;) }) (else_clause "else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" else (compound_statement "{\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" { (expression_statement "iVar3 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar3 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar11 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = *(double *)(iVar3 + 0x1438);" (assignment_expression "dVar47 = *(double *)(iVar3 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar3 + 0x1438)" * (cast_expression "(double *)(iVar3 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1438)" ( (binary_expression "iVar3 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar11 + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar11 + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3708)" ( (binary_expression "iVar11 + 0x3708" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339d4c);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" * (cast_expression "(code **)(pcVar33 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d4c)" ( (binary_expression "pcVar33 + 0x339d4c" identifier + number_literal) ))))) ;) (expression_statement "dVar35 = dVar46;" (assignment_expression "dVar35 = dVar46" identifier = identifier) ;) (expression_statement "dVar44 = dVar46;" (assignment_expression "dVar44 = dVar46" identifier = identifier) ;) (expression_statement "dVar37 = dVar47;" (assignment_expression "dVar37 = dVar47" identifier = identifier) ;) (do_statement "do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);" do (compound_statement "{\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    }" { (expression_statement "pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);" (assignment_expression "pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" identifier = (cast_expression "(float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(uVar15,0,uVar28,uVar4,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339d4c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339d4c)" * (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" * (cast_expression "(code **)(pcVar33 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d4c)" ( (binary_expression "pcVar33 + 0x339d4c" identifier + number_literal) ))))) )) (argument_list "(uVar5,0,uVar28,uVar4,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }" if (parenthesized_expression "((pfVar8 == (float *)0x0) || (iVar9 == 0))" ( (binary_expression "(pfVar8 == (float *)0x0) || (iVar9 == 0)" (parenthesized_expression "(pfVar8 == (float *)0x0)" ( (binary_expression "pfVar8 == (float *)0x0" identifier == (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0006fc88;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }" if (parenthesized_expression "(0 < (int)uVar4)" ( (binary_expression "0 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }" { (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "piVar29 = *(int **)(iVar2 + 0x2d0);" (assignment_expression "piVar29 = *(int **)(iVar2 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar2 + 0x2d0)" * (cast_expression "(int **)(iVar2 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x2d0)" ( (binary_expression "iVar2 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1b0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" * (cast_expression "(double *)(iStack_1b0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b0 + 0x1440)" ( (binary_expression "iStack_1b0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = piVar29[0x13];" (assignment_expression "iVar31 = piVar29[0x13]" identifier = (subscript_expression "piVar29[0x13]" identifier [ number_literal ])) ;) (expression_statement "dVar43 = *(double *)(iVar3 + 0x1438);" (assignment_expression "dVar43 = *(double *)(iVar3 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar3 + 0x1438)" * (cast_expression "(double *)(iVar3 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1438)" ( (binary_expression "iVar3 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(iVar11 + 0x3708);" (assignment_expression "fVar39 = *(float *)(iVar11 + 0x3708)" identifier = (pointer_expression "*(float *)(iVar11 + 0x3708)" * (cast_expression "(float *)(iVar11 + 0x3708)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3708)" ( (binary_expression "iVar11 + 0x3708" identifier + number_literal) ))))) ;) (do_statement "do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);" do (compound_statement "{\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        }" { (while_statement "while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }" while (parenthesized_expression "(((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))))" ( (parenthesized_expression "((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))" ( (binary_expression "(iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (parenthesized_expression "(iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39))" ( (binary_expression "iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)" (binary_expression "iVar31 != 0" identifier != number_literal) && (parenthesized_expression "(pfVar8[piVar29[0x14]] <= fVar39)" ( (binary_expression "pfVar8[piVar29[0x14]] <= fVar39" (subscript_expression "pfVar8[piVar29[0x14]]" identifier [ (subscript_expression "piVar29[0x14]" identifier [ number_literal ]) ]) <= identifier) ))) )) || (parenthesized_expression "((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" ( (parenthesized_expression "(iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))" ( (comma_expression "iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (assignment_expression "iVar23 = piVar30[0xb4]" identifier = (subscript_expression "piVar30[0xb4]" identifier [ number_literal ])) , (binary_expression "*(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (binary_expression "*(int *)(iVar23 + 0x4c) != 0" (pointer_expression "*(int *)(iVar23 + 0x4c)" * (cast_expression "(int *)(iVar23 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x4c)" ( (binary_expression "iVar23 + 0x4c" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "(*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" ( (binary_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar23 + 0x50) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar23 + 0x50) * 4" identifier + (binary_expression "*(int *)(iVar23 + 0x50) * 4" (pointer_expression "*(int *)(iVar23 + 0x50)" * (cast_expression "(int *)(iVar23 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x50)" ( (binary_expression "iVar23 + 0x50" identifier + number_literal) )))) * number_literal)) )))) <= (cast_expression "(float)uVar45" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) ))) )) )) (compound_statement "{\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }" { (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);" (assignment_expression "pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0)" identifier = (binary_expression "pfVar8 + *(int *)(iVar2 + 0x2c0)" identifier + (pointer_expression "*(int *)(iVar2 + 0x2c0)" * (cast_expression "(int *)(iVar2 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c0)" ( (binary_expression "iVar2 + 0x2c0" identifier + number_literal) )))))) ;) (expression_statement "iVar9 = iVar9 + piVar30[0xb0] * 4;" (assignment_expression "iVar9 = iVar9 + piVar30[0xb0] * 4" identifier = (binary_expression "iVar9 + piVar30[0xb0] * 4" identifier + (binary_expression "piVar30[0xb0] * 4" (subscript_expression "piVar30[0xb0]" identifier [ number_literal ]) * number_literal))) ;) (if_statement "if (uVar27 == uVar4) goto LAB_0006fc4c;" if (parenthesized_expression "(uVar27 == uVar4)" ( (binary_expression "uVar27 == uVar4" identifier == identifier) )) (goto_statement "goto LAB_0006fc4c;" goto statement_identifier ;)) })) (expression_statement "dVar36 = dVar43;" (assignment_expression "dVar36 = dVar43" identifier = identifier) ;) (if_statement "if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }" if (parenthesized_expression "(piVar29[0xd] != 0)" ( (binary_expression "piVar29[0xd] != 0" (subscript_expression "piVar29[0xd]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }" { (expression_statement "dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;" (assignment_expression "dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40" identifier = (binary_expression "(double)pfVar8[piVar29[0xe]] * dVar40" (cast_expression "(double)pfVar8[piVar29[0xe]]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pfVar8[piVar29[0xe]]" identifier [ (subscript_expression "piVar29[0xe]" identifier [ number_literal ]) ])) * identifier)) ;) })) (expression_statement "dVar38 = dVar37;" (assignment_expression "dVar38 = dVar37" identifier = identifier) ;) (if_statement "if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }" if (parenthesized_expression "(*(int *)(iVar23 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar23 + 0x34) != 0" (pointer_expression "*(int *)(iVar23 + 0x34)" * (cast_expression "(int *)(iVar23 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x34)" ( (binary_expression "iVar23 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }" { (expression_statement "dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;" (assignment_expression "dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40" identifier = (binary_expression "(double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40" (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar23 + 0x38) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar23 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar23 + 0x38) * 4" (pointer_expression "*(int *)(iVar23 + 0x38)" * (cast_expression "(int *)(iVar23 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x38)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) })) (expression_statement "iVar26 = *(int *)(iVar2 + 0x2c0);" (assignment_expression "iVar26 = *(int *)(iVar2 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar2 + 0x2c0)" * (cast_expression "(int *)(iVar2 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c0)" ( (binary_expression "iVar2 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" if (parenthesized_expression "(0 < iVar26)" ( (binary_expression "0 < iVar26" number_literal < identifier) )) (compound_statement "{\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" { (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (expression_statement "piVar10 = piVar29;" (assignment_expression "piVar10 = piVar29" identifier = identifier) ;) (expression_statement "pfVar19 = pfVar8;" (assignment_expression "pfVar19 = pfVar8" identifier = identifier) ;) (do_statement "do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);" do (compound_statement "{\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            }" { (expression_statement "iVar24 = *piVar10;" (assignment_expression "iVar24 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar12 = iVar23 + iVar24 * 0xc;" (assignment_expression "iVar12 = iVar23 + iVar24 * 0xc" identifier = (binary_expression "iVar23 + iVar24 * 0xc" identifier + (binary_expression "iVar24 * 0xc" identifier * number_literal))) ;) (if_statement "if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }" if (parenthesized_expression "(((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0))" ( (binary_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)" (parenthesized_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))" ( (binary_expression "(piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0)" (parenthesized_expression "(piVar29[iVar24 * 3 + 1] != 0)" ( (binary_expression "piVar29[iVar24 * 3 + 1] != 0" (subscript_expression "piVar29[iVar24 * 3 + 1]" identifier [ (binary_expression "iVar24 * 3 + 1" (binary_expression "iVar24 * 3" identifier * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0)" ( (comma_expression "uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar12 + 4)" identifier = (pointer_expression "*(uint *)(iVar12 + 4)" * (cast_expression "(uint *)(iVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) , (binary_expression "uVar25 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "((uVar25 & 2) != 0)" ( (binary_expression "(uVar25 & 2) != 0" (parenthesized_expression "(uVar25 & 2)" ( (binary_expression "uVar25 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }" { (expression_statement "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);" (assignment_expression "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar12 + 8) * 4" identifier + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" if (parenthesized_expression "(iVar24 == 4)" ( (binary_expression "iVar24 == 4" identifier == number_literal) )) (compound_statement "{\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }" { (expression_statement "dVar41 = (double)*pfVar19 - dVar41;" (assignment_expression "dVar41 = (double)*pfVar19 - dVar41" identifier = (binary_expression "(double)*pfVar19 - dVar41" (cast_expression "(double)*pfVar19" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar19" * identifier)) - identifier)) ;) }) (else_clause "else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" else (compound_statement "{\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" { (expression_statement "dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;" (assignment_expression "dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41" identifier = (binary_expression "dVar36 * (double)*pfVar19 - dVar38 * dVar41" (binary_expression "dVar36 * (double)*pfVar19" identifier * (cast_expression "(double)*pfVar19" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar19" * identifier))) - (binary_expression "dVar38 * dVar41" identifier * identifier))) ;) }))) (expression_statement "dVar35 = dVar35 + dVar47;" (assignment_expression "dVar35 = dVar35 + dVar47" identifier = (binary_expression "dVar35 + dVar47" identifier + identifier)) ;) (expression_statement "dVar42 = ABS(dVar41);" (assignment_expression "dVar42 = ABS(dVar41)" identifier = (call_expression "ABS(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (expression_statement "dVar46 = dVar42 * dVar42 + dVar46;" (assignment_expression "dVar46 = dVar42 * dVar42 + dVar46" identifier = (binary_expression "dVar42 * dVar42 + dVar46" (binary_expression "dVar42 * dVar42" identifier * identifier) + identifier)) ;) (expression_statement "*pdVar16 = *pdVar16 + dVar42;" (assignment_expression "*pdVar16 = *pdVar16 + dVar42" (pointer_expression "*pdVar16" * identifier) = (binary_expression "*pdVar16 + dVar42" (pointer_expression "*pdVar16" * identifier) + identifier)) ;) (expression_statement "pdVar17[0x40] = pdVar17[0x40] + dVar42;" (assignment_expression "pdVar17[0x40] = pdVar17[0x40] + dVar42" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar17[0x40] + dVar42" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }" if (parenthesized_expression "(dVar44 < dVar42)" ( (binary_expression "dVar44 < dVar42" identifier < identifier) )) (compound_statement "{\n                  dVar44 = ABS(dVar41);\n                }" { (expression_statement "dVar44 = ABS(dVar41);" (assignment_expression "dVar44 = ABS(dVar41)" identifier = (call_expression "ABS(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) })) })) (expression_statement "pdVar16 = pdVar16 + 1;" (assignment_expression "pdVar16 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = piVar10 + 3;" (assignment_expression "piVar10 = piVar10 + 3" identifier = (binary_expression "piVar10 + 3" identifier + number_literal)) ;) (expression_statement "pfVar19 = pfVar19 + 1;" (assignment_expression "pfVar19 = pfVar19 + 1" identifier = (binary_expression "pfVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar16 != pdVar17 + iVar26)" ( (binary_expression "pdVar16 != pdVar17 + iVar26" identifier != (binary_expression "pdVar17 + iVar26" identifier + identifier)) )) ;) })) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar8 = pfVar8 + iVar26;" (assignment_expression "pfVar8 = pfVar8 + iVar26" identifier = (binary_expression "pfVar8 + iVar26" identifier + identifier)) ;) (expression_statement "iVar9 = iVar9 + piVar30[0xb0] * 4;" (assignment_expression "iVar9 = iVar9 + piVar30[0xb0] * 4" identifier = (binary_expression "iVar9 + piVar30[0xb0] * 4" identifier + (binary_expression "piVar30[0xb0] * 4" (subscript_expression "piVar30[0xb0]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(uVar27 != uVar4)" ( (binary_expression "uVar27 != uVar4" identifier != identifier) )) ;) })) (labeled_statement "LAB_0006fc4c:\n      uVar28 = uVar28 + 1;" statement_identifier : (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339d4c);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" * (cast_expression "(code **)(pcVar33 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d4c)" ( (binary_expression "pcVar33 + 0x339d4c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar28 != uVar18)" ( (binary_expression "uVar28 != uVar18" identifier != identifier) )) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar5);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar33 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar33 + 0x3395e4)" * (cast_expression "(code **)(pcVar33 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3395e4)" ( (binary_expression "pcVar33 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar15);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar15)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar33 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar33 + 0x3395e4)" * (cast_expression "(code **)(pcVar33 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3395e4)" ( (binary_expression "pcVar33 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "dVar37 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar37 = *(double *)(iStack_1b0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" * (cast_expression "(double *)(iStack_1b0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b0 + 0x1440)" ( (binary_expression "iStack_1b0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" ( (binary_expression "*(int *)(pcVar33 + 0x338fd0) + 0x3700" (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;" (assignment_expression "*(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35" (pointer_expression "*(double *)(iVar2 + 0x2d8)" * (cast_expression "(double *)(iVar2 + 0x2d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2d8)" ( (binary_expression "iVar2 + 0x2d8" identifier + number_literal) )))) = (binary_expression "pdVar17[0x40] / dVar35" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) / identifier)) ;) (expression_statement "*(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;" (assignment_expression "*(double *)(iVar2 + 0x2e8) = dVar44 * dVar37" (pointer_expression "*(double *)(iVar2 + 0x2e8)" * (cast_expression "(double *)(iVar2 + 0x2e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2e8)" ( (binary_expression "iVar2 + 0x2e8" identifier + number_literal) )))) = (binary_expression "dVar44 * dVar37" identifier * identifier)) ;) (expression_statement "*(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;" (assignment_expression "*(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35" (pointer_expression "*(double *)(iVar2 + 0x2e0)" * (cast_expression "(double *)(iVar2 + 0x2e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2e0)" ( (binary_expression "iVar2 + 0x2e0" identifier + number_literal) )))) = (binary_expression "(dVar46 * dVar47) / dVar35" (parenthesized_expression "(dVar46 * dVar47)" ( (binary_expression "dVar46 * dVar47" identifier * identifier) )) / identifier)) ;) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType\nTransformImageColorspace(Image *image,ColorspaceType colorspace,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  ColorspaceType CVar2;\n  MagickBooleanType MVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int iVar12;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar13;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar14;\n  int iVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined4 uVar18;\n  double *pdVar19;\n  double *pdVar20;\n  uint uVar21;\n  float *pfVar22;\n  undefined *puVar23;\n  undefined4 uVar24;\n  int *piVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  int iVar29;\n  uint uVar30;\n  Image *unaff_s0;\n  uint uVar31;\n  int *piVar32;\n  int *piVar33;\n  int iVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double dVar49;\n  double dVar50;\n  undefined8 uVar51;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  MagickBooleanType MStack_f4;\n  int iStack_ec;\n  MagickBooleanType MStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  MagickBooleanType MStack_78;\n  int iStack_6c;\n  Image *pIStack_68;\n  \n  if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = image;\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }\n  }\n  uVar18 = 0x5e6;\n  puVar23 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar17 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar16 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar35 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar35 + 0x3416c0;\n  dVar38 = *(double *)(puVar17 + 0x248);\n  dVar47 = *(double *)(puVar16 + 0x248);\n  piVar33 = *(int **)(puVar35 + 0x33a040);\n  iStack_6c = *piVar33;\n  if (dVar38 < dVar47) {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar47 = dVar47 * dVar47;\n  }\n  else {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }\n  }\n  uVar21 = *(uint *)(puVar16 + 0x1c);\n  if (*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c)) {\n    uVar21 = *(uint *)(puVar17 + 0x1c);\n  }\n  uVar5 = *(uint *)(puVar16 + 0x18);\n  if (*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18)) {\n    uVar5 = *(uint *)(puVar17 + 0x18);\n  }\n  pIStack_68 = unaff_s0;\n  uVar6 = (**(code **)(puVar35 + 0x33a564))(puVar16,puVar23);\n  uVar7 = (**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23);\n  iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16);\n  if (((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&\n     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar31 = uVar21;\n    if ((int)uVar21 < 0) {\n      uVar31 = uVar21 + 0x3f;\n    }\n    pdVar19 = (double *)((int)uVar31 >> 6);\n    if (extraout_v1 < (int)pdVar19) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar21 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar19 = (double *)0x1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar51 = (*pcVar36)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar24 = 0;\n  pdVar20 = &dStack_a0;\n  MStack_78 = MagickTrue;\n  dStack_a0 = dVar47;\n  puStack_98 = puVar16;\n  puStack_94 = puVar17;\n  uStack_90 = uVar18;\n  puStack_8c = puVar23;\n  uStack_88 = uVar6;\n  uStack_84 = uVar7;\n  uStack_80 = uVar5;\n  uStack_7c = uVar21;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  MVar3 = MStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar7);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  if (iStack_6c == *piVar33) {\n    return MVar3;\n  }\n  pcVar36 = *(code **)(puStack_b0 + -0x784c);\n  pcVar37 = GetMeanAbsoluteDistortion;\n  iVar8 = iStack_6c;\n  (*pcVar36)();\n  piVar32 = *(int **)(pcVar36 + 0x339d18);\n  uVar31 = *(uint *)(iVar8 + 0x1c);\n  if (*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c)) {\n    uVar31 = *(uint *)((int)pdVar20 + 0x1c);\n  }\n  uVar30 = *(uint *)(iVar8 + 0x18);\n  if (*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3)) {\n    uVar30 = *(uint *)(pdVar20 + 3);\n  }\n  MStack_e8 = MVar3;\n  iStack_ec = *piVar32;\n  puStack_e4 = puVar17;\n  uStack_e0 = uVar21;\n  puStack_dc = puVar23;\n  uStack_d8 = uVar5;\n  piStack_d4 = piVar33;\n  uStack_d0 = uVar18;\n  uStack_cc = uVar6;\n  uStack_c8 = uVar7;\n  pcStack_c4 = pcVar37;\n  uVar18 = (**(code **)(pcVar36 + 0x33a23c))();\n  uVar6 = (**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24);\n  iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))) {\n    (**(code **)(pcVar36 + 0x339c24))(7);\n    uVar21 = uVar31;\n    if ((int)uVar31 < 0) {\n      uVar21 = uVar31 + 0x3f;\n    }\n    iVar9 = (int)uVar21 >> 6;\n    if (extraout_v1_03 < iVar9) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar31 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar9 = 1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar25 = (int *)0x0;\n  piVar33 = &iStack_120;\n  MStack_f4 = MagickTrue;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar8;\n  pdStack_114 = pdVar20;\n  pdStack_110 = pdVar19;\n  uStack_10c = uVar24;\n  uStack_108 = uVar18;\n  uStack_104 = uVar6;\n  uStack_fc = uVar30;\n  uStack_f8 = uVar31;\n  (**(code **)(pcVar36 + 0x339c80))(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9);\n  MVar3 = MStack_f4;\n  uVar7 = uStack_11c;\n  iVar9 = iStack_120;\n  dVar38 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar36 + 0x3399dc))(uVar6);\n  (**(code **)(pcVar36 + 0x3399dc))(uVar18);\n  if (0.0 <= dVar38) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar38;\n  }\n  else {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar9,uVar7);\n  }\n  if (*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;\n  }\n  else {\n    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);\n  }\n  pdVar20 = pdVar19;\n  do {\n    pdVar10 = pdVar20 + 1;\n    *pdVar20 = *pdVar20 * dVar47;\n    pdVar20 = pdVar10;\n  } while (pdVar19 + 0x41 != pdVar10);\n  pdVar20 = (double *)0x0;\n  if (0 < *(int *)(iVar8 + 0x2c0)) {\n    piVar25 = *(int **)(iVar8 + 0x2d0);\n    piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;\n    piVar13 = piVar25;\n    do {\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar33);\n    if (pdVar20 != (double *)0x0) {\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar38 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar8 = *piVar32;\n  pdVar19[0x40] = pdVar19[0x40] / dVar38;\n  if (iStack_ec == iVar8) {\n    return MVar3;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x339b4c);\n  iVar8 = iStack_ec;\n  (*pcVar36)();\n  uVar21 = *(uint *)(iVar8 + 0x1c);\n  if (*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7]) {\n    uVar21 = piVar33[7];\n  }\n  uVar5 = *(uint *)(iVar8 + 0x18);\n  if (*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6]) {\n    uVar5 = piVar33[6];\n  }\n  uVar18 = (**(code **)(pcVar36 + 0x339e44))();\n  uVar6 = (**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25);\n  if ((int)uVar21 < 1) {\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    MVar3 = MagickTrue;\n    dVar49 = 0.0;\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n  }\n  else {\n    iVar9 = *(int *)(pcVar36 + 0x338fd0);\n    iVar14 = *(int *)(pcVar36 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    dVar50 = *(double *)(iVar9 + 0x1438);\n    uVar31 = 0;\n    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);\n    dVar49 = 0.0;\n    pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n    dVar40 = dVar50;\n    do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);\n    MVar3 = MagickTrue;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar36 + 0x3395e4))(uVar6);\n  (**(code **)(pcVar36 + 0x3395e4))(uVar18);\n  dVar40 = *(double *)(iStack_1b0 + 0x1440);\n  dVar50 = *(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700);\n  *(double *)(iVar8 + 0x2d8) = pdVar20[0x40] / dVar38;\n  *(double *)(iVar8 + 0x2e8) = dVar47 * dVar40;\n  *(double *)(iVar8 + 0x2e0) = (dVar49 * dVar50) / dVar38;\n  return MVar3;\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType\nTransformImageColorspace(Image *image,ColorspaceType colorspace,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  ColorspaceType CVar2;\n  MagickBooleanType MVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int iVar12;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar13;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar14;\n  int iVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined4 uVar18;\n  double *pdVar19;\n  double *pdVar20;\n  uint uVar21;\n  float *pfVar22;\n  undefined *puVar23;\n  undefined4 uVar24;\n  int *piVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  int iVar29;\n  uint uVar30;\n  Image *unaff_s0;\n  uint uVar31;\n  int *piVar32;\n  int *piVar33;\n  int iVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double dVar49;\n  double dVar50;\n  undefined8 uVar51;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  MagickBooleanType MStack_f4;\n  int iStack_ec;\n  MagickBooleanType MStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  MagickBooleanType MStack_78;\n  int iStack_6c;\n  Image *pIStack_68;\n  \n  if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = image;\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }\n  }\n  uVar18 = 0x5e6;\n  puVar23 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar17 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar16 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar35 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar35 + 0x3416c0;\n  dVar38 = *(double *)(puVar17 + 0x248);\n  dVar47 = *(double *)(puVar16 + 0x248);\n  piVar33 = *(int **)(puVar35 + 0x33a040);\n  iStack_6c = *piVar33;\n  if (dVar38 < dVar47) {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar47 = dVar47 * dVar47;\n  }\n  else {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }\n  }\n  uVar21 = *(uint *)(puVar16 + 0x1c);\n  if (*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c)) {\n    uVar21 = *(uint *)(puVar17 + 0x1c);\n  }\n  uVar5 = *(uint *)(puVar16 + 0x18);\n  if (*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18)) {\n    uVar5 = *(uint *)(puVar17 + 0x18);\n  }\n  pIStack_68 = unaff_s0;\n  uVar6 = (**(code **)(puVar35 + 0x33a564))(puVar16,puVar23);\n  uVar7 = (**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23);\n  iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16);\n  if (((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&\n     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar31 = uVar21;\n    if ((int)uVar21 < 0) {\n      uVar31 = uVar21 + 0x3f;\n    }\n    pdVar19 = (double *)((int)uVar31 >> 6);\n    if (extraout_v1 < (int)pdVar19) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar21 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar19 = (double *)0x1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar51 = (*pcVar36)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar24 = 0;\n  pdVar20 = &dStack_a0;\n  MStack_78 = MagickTrue;\n  dStack_a0 = dVar47;\n  puStack_98 = puVar16;\n  puStack_94 = puVar17;\n  uStack_90 = uVar18;\n  puStack_8c = puVar23;\n  uStack_88 = uVar6;\n  uStack_84 = uVar7;\n  uStack_80 = uVar5;\n  uStack_7c = uVar21;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  MVar3 = MStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar7);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  if (iStack_6c == *piVar33) {\n    return MVar3;\n  }\n  pcVar36 = *(code **)(puStack_b0 + -0x784c);\n  pcVar37 = GetMeanAbsoluteDistortion;\n  iVar8 = iStack_6c;\n  (*pcVar36)();\n  piVar32 = *(int **)(pcVar36 + 0x339d18);\n  uVar31 = *(uint *)(iVar8 + 0x1c);\n  if (*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c)) {\n    uVar31 = *(uint *)((int)pdVar20 + 0x1c);\n  }\n  uVar30 = *(uint *)(iVar8 + 0x18);\n  if (*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3)) {\n    uVar30 = *(uint *)(pdVar20 + 3);\n  }\n  MStack_e8 = MVar3;\n  iStack_ec = *piVar32;\n  puStack_e4 = puVar17;\n  uStack_e0 = uVar21;\n  puStack_dc = puVar23;\n  uStack_d8 = uVar5;\n  piStack_d4 = piVar33;\n  uStack_d0 = uVar18;\n  uStack_cc = uVar6;\n  uStack_c8 = uVar7;\n  pcStack_c4 = pcVar37;\n  uVar18 = (**(code **)(pcVar36 + 0x33a23c))();\n  uVar6 = (**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24);\n  iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))) {\n    (**(code **)(pcVar36 + 0x339c24))(7);\n    uVar21 = uVar31;\n    if ((int)uVar31 < 0) {\n      uVar21 = uVar31 + 0x3f;\n    }\n    iVar9 = (int)uVar21 >> 6;\n    if (extraout_v1_03 < iVar9) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar31 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar9 = 1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar25 = (int *)0x0;\n  piVar33 = &iStack_120;\n  MStack_f4 = MagickTrue;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar8;\n  pdStack_114 = pdVar20;\n  pdStack_110 = pdVar19;\n  uStack_10c = uVar24;\n  uStack_108 = uVar18;\n  uStack_104 = uVar6;\n  uStack_fc = uVar30;\n  uStack_f8 = uVar31;\n  (**(code **)(pcVar36 + 0x339c80))(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9);\n  MVar3 = MStack_f4;\n  uVar7 = uStack_11c;\n  iVar9 = iStack_120;\n  dVar38 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar36 + 0x3399dc))(uVar6);\n  (**(code **)(pcVar36 + 0x3399dc))(uVar18);\n  if (0.0 <= dVar38) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar38;\n  }\n  else {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar9,uVar7);\n  }\n  if (*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;\n  }\n  else {\n    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);\n  }\n  pdVar20 = pdVar19;\n  do {\n    pdVar10 = pdVar20 + 1;\n    *pdVar20 = *pdVar20 * dVar47;\n    pdVar20 = pdVar10;\n  } while (pdVar19 + 0x41 != pdVar10);\n  pdVar20 = (double *)0x0;\n  if (0 < *(int *)(iVar8 + 0x2c0)) {\n    piVar25 = *(int **)(iVar8 + 0x2d0);\n    piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;\n    piVar13 = piVar25;\n    do {\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar33);\n    if (pdVar20 != (double *)0x0) {\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar38 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar8 = *piVar32;\n  pdVar19[0x40] = pdVar19[0x40] / dVar38;\n  if (iStack_ec == iVar8) {\n    return MVar3;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x339b4c);\n  iVar8 = iStack_ec;\n  (*pcVar36)();\n  uVar21 = *(uint *)(iVar8 + 0x1c);\n  if (*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7]) {\n    uVar21 = piVar33[7];\n  }\n  uVar5 = *(uint *)(iVar8 + 0x18);\n  if (*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6]) {\n    uVar5 = piVar33[6];\n  }\n  uVar18 = (**(code **)(pcVar36 + 0x339e44))();\n  uVar6 = (**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25);\n  if ((int)uVar21 < 1) {\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    MVar3 = MagickTrue;\n    dVar49 = 0.0;\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n  }\n  else {\n    iVar9 = *(int *)(pcVar36 + 0x338fd0);\n    iVar14 = *(int *)(pcVar36 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    dVar50 = *(double *)(iVar9 + 0x1438);\n    uVar31 = 0;\n    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);\n    dVar49 = 0.0;\n    pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n    dVar40 = dVar50;\n    do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);\n    MVar3 = MagickTrue;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar36 + 0x3395e4))(uVar6);\n  (**(code **)(pcVar36 + 0x3395e4))(uVar18);\n  dVar40 = *(double *)(iStack_1b0 + 0x1440);\n  dVar50 = *(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700);\n  *(double *)(iVar8 + 0x2d8) = pdVar20[0x40] / dVar38;\n  *(double *)(iVar8 + 0x2e8) = dVar47 * dVar40;\n  *(double *)(iVar8 + 0x2e0) = (dVar49 * dVar50) / dVar38;\n  return MVar3;\n}" type_identifier (function_declarator "TransformImageColorspace(Image *image,ColorspaceType colorspace,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,ColorspaceType colorspace,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ColorspaceType colorspace" type_identifier identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ColorspaceType CVar2;\n  MagickBooleanType MVar3;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int iVar12;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar13;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar14;\n  int iVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined4 uVar18;\n  double *pdVar19;\n  double *pdVar20;\n  uint uVar21;\n  float *pfVar22;\n  undefined *puVar23;\n  undefined4 uVar24;\n  int *piVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  int iVar29;\n  uint uVar30;\n  Image *unaff_s0;\n  uint uVar31;\n  int *piVar32;\n  int *piVar33;\n  int iVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double dVar49;\n  double dVar50;\n  undefined8 uVar51;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  MagickBooleanType MStack_f4;\n  int iStack_ec;\n  MagickBooleanType MStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  MagickBooleanType MStack_78;\n  int iStack_6c;\n  Image *pIStack_68;\n  \n  if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = image;\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }\n  }\n  uVar18 = 0x5e6;\n  puVar23 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar17 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar16 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar35 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar35 + 0x3416c0;\n  dVar38 = *(double *)(puVar17 + 0x248);\n  dVar47 = *(double *)(puVar16 + 0x248);\n  piVar33 = *(int **)(puVar35 + 0x33a040);\n  iStack_6c = *piVar33;\n  if (dVar38 < dVar47) {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar47 = dVar47 * dVar47;\n  }\n  else {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }\n  }\n  uVar21 = *(uint *)(puVar16 + 0x1c);\n  if (*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c)) {\n    uVar21 = *(uint *)(puVar17 + 0x1c);\n  }\n  uVar5 = *(uint *)(puVar16 + 0x18);\n  if (*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18)) {\n    uVar5 = *(uint *)(puVar17 + 0x18);\n  }\n  pIStack_68 = unaff_s0;\n  uVar6 = (**(code **)(puVar35 + 0x33a564))(puVar16,puVar23);\n  uVar7 = (**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23);\n  iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16);\n  if (((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&\n     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar31 = uVar21;\n    if ((int)uVar21 < 0) {\n      uVar31 = uVar21 + 0x3f;\n    }\n    pdVar19 = (double *)((int)uVar31 >> 6);\n    if (extraout_v1 < (int)pdVar19) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar21 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar19 = (double *)0x1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar51 = (*pcVar36)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar24 = 0;\n  pdVar20 = &dStack_a0;\n  MStack_78 = MagickTrue;\n  dStack_a0 = dVar47;\n  puStack_98 = puVar16;\n  puStack_94 = puVar17;\n  uStack_90 = uVar18;\n  puStack_8c = puVar23;\n  uStack_88 = uVar6;\n  uStack_84 = uVar7;\n  uStack_80 = uVar5;\n  uStack_7c = uVar21;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  MVar3 = MStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar7);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  if (iStack_6c == *piVar33) {\n    return MVar3;\n  }\n  pcVar36 = *(code **)(puStack_b0 + -0x784c);\n  pcVar37 = GetMeanAbsoluteDistortion;\n  iVar8 = iStack_6c;\n  (*pcVar36)();\n  piVar32 = *(int **)(pcVar36 + 0x339d18);\n  uVar31 = *(uint *)(iVar8 + 0x1c);\n  if (*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c)) {\n    uVar31 = *(uint *)((int)pdVar20 + 0x1c);\n  }\n  uVar30 = *(uint *)(iVar8 + 0x18);\n  if (*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3)) {\n    uVar30 = *(uint *)(pdVar20 + 3);\n  }\n  MStack_e8 = MVar3;\n  iStack_ec = *piVar32;\n  puStack_e4 = puVar17;\n  uStack_e0 = uVar21;\n  puStack_dc = puVar23;\n  uStack_d8 = uVar5;\n  piStack_d4 = piVar33;\n  uStack_d0 = uVar18;\n  uStack_cc = uVar6;\n  uStack_c8 = uVar7;\n  pcStack_c4 = pcVar37;\n  uVar18 = (**(code **)(pcVar36 + 0x33a23c))();\n  uVar6 = (**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24);\n  iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))) {\n    (**(code **)(pcVar36 + 0x339c24))(7);\n    uVar21 = uVar31;\n    if ((int)uVar31 < 0) {\n      uVar21 = uVar31 + 0x3f;\n    }\n    iVar9 = (int)uVar21 >> 6;\n    if (extraout_v1_03 < iVar9) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar31 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar9 = 1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar25 = (int *)0x0;\n  piVar33 = &iStack_120;\n  MStack_f4 = MagickTrue;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar8;\n  pdStack_114 = pdVar20;\n  pdStack_110 = pdVar19;\n  uStack_10c = uVar24;\n  uStack_108 = uVar18;\n  uStack_104 = uVar6;\n  uStack_fc = uVar30;\n  uStack_f8 = uVar31;\n  (**(code **)(pcVar36 + 0x339c80))(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9);\n  MVar3 = MStack_f4;\n  uVar7 = uStack_11c;\n  iVar9 = iStack_120;\n  dVar38 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar36 + 0x3399dc))(uVar6);\n  (**(code **)(pcVar36 + 0x3399dc))(uVar18);\n  if (0.0 <= dVar38) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar38;\n  }\n  else {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar9,uVar7);\n  }\n  if (*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;\n  }\n  else {\n    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);\n  }\n  pdVar20 = pdVar19;\n  do {\n    pdVar10 = pdVar20 + 1;\n    *pdVar20 = *pdVar20 * dVar47;\n    pdVar20 = pdVar10;\n  } while (pdVar19 + 0x41 != pdVar10);\n  pdVar20 = (double *)0x0;\n  if (0 < *(int *)(iVar8 + 0x2c0)) {\n    piVar25 = *(int **)(iVar8 + 0x2d0);\n    piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;\n    piVar13 = piVar25;\n    do {\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar33);\n    if (pdVar20 != (double *)0x0) {\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar38 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar8 = *piVar32;\n  pdVar19[0x40] = pdVar19[0x40] / dVar38;\n  if (iStack_ec == iVar8) {\n    return MVar3;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x339b4c);\n  iVar8 = iStack_ec;\n  (*pcVar36)();\n  uVar21 = *(uint *)(iVar8 + 0x1c);\n  if (*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7]) {\n    uVar21 = piVar33[7];\n  }\n  uVar5 = *(uint *)(iVar8 + 0x18);\n  if (*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6]) {\n    uVar5 = piVar33[6];\n  }\n  uVar18 = (**(code **)(pcVar36 + 0x339e44))();\n  uVar6 = (**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25);\n  if ((int)uVar21 < 1) {\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    MVar3 = MagickTrue;\n    dVar49 = 0.0;\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n  }\n  else {\n    iVar9 = *(int *)(pcVar36 + 0x338fd0);\n    iVar14 = *(int *)(pcVar36 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    dVar50 = *(double *)(iVar9 + 0x1438);\n    uVar31 = 0;\n    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);\n    dVar49 = 0.0;\n    pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n    dVar40 = dVar50;\n    do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);\n    MVar3 = MagickTrue;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar36 + 0x3395e4))(uVar6);\n  (**(code **)(pcVar36 + 0x3395e4))(uVar18);\n  dVar40 = *(double *)(iStack_1b0 + 0x1440);\n  dVar50 = *(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700);\n  *(double *)(iVar8 + 0x2d8) = pdVar20[0x40] / dVar38;\n  *(double *)(iVar8 + 0x2e8) = dVar47 * dVar40;\n  *(double *)(iVar8 + 0x2e0) = (dVar49 * dVar50) / dVar38;\n  return MVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ColorspaceType CVar2;" type_identifier identifier ;) (declaration "MagickBooleanType MVar3;" type_identifier identifier ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (declaration "float *pfVar11;" primitive_type (pointer_declarator "*pfVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "double *extraout_v1_00;" primitive_type (pointer_declarator "*extraout_v1_00" * identifier) ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "int extraout_v1_04;" primitive_type identifier ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "double *pdVar19;" primitive_type (pointer_declarator "*pdVar19" * identifier) ;) (declaration "double *pdVar20;" primitive_type (pointer_declarator "*pdVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "float *pfVar22;" primitive_type (pointer_declarator "*pfVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "Image *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "float fVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "ulonglong uVar48;" type_identifier identifier ;) (declaration "double dVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "undefined8 uVar51;" type_identifier identifier ;) (declaration "int iStack_1b0;" primitive_type identifier ;) (declaration "double dStack_128;" primitive_type identifier ;) (declaration "int iStack_120;" primitive_type identifier ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "double *pdStack_114;" primitive_type (pointer_declarator "*pdStack_114" * identifier) ;) (declaration "double *pdStack_110;" primitive_type (pointer_declarator "*pdStack_110" * identifier) ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "uint uStack_fc;" type_identifier identifier ;) (declaration "uint uStack_f8;" type_identifier identifier ;) (declaration "MagickBooleanType MStack_f4;" type_identifier identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "MagickBooleanType MStack_e8;" type_identifier identifier ;) (declaration "undefined *puStack_e4;" type_identifier (pointer_declarator "*puStack_e4" * identifier) ;) (declaration "uint uStack_e0;" type_identifier identifier ;) (declaration "undefined *puStack_dc;" type_identifier (pointer_declarator "*puStack_dc" * identifier) ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "undefined4 uStack_cc;" type_identifier identifier ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "undefined *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "double *pdStack_a4;" primitive_type (pointer_declarator "*pdStack_a4" * identifier) ;) (declaration "double dStack_a0;" primitive_type identifier ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "uint uStack_80;" type_identifier identifier ;) (declaration "uint uStack_7c;" type_identifier identifier ;) (declaration "MagickBooleanType MStack_78;" type_identifier identifier ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "Image *pIStack_68;" type_identifier (pointer_declarator "*pIStack_68" * identifier) ;) (if_statement "if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = image;\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" ( (binary_expression "PTR_LAB_003a88e0 + 0xdd0" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal) , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier + number_literal) ))) ;) }) (else_clause "else {\n    unaff_s0 = image;\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = image;\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }\n  }" { (expression_statement "unaff_s0 = image;" (assignment_expression "unaff_s0 = image" identifier = identifier) ;) (if_statement "if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }" if (parenthesized_expression "(image->signature == 0xabacadab)" ( (binary_expression "image->signature == 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }\n      if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }\n      if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }\n      MVar3 = TransformsRGBImage(image,exception);\n      return MVar3;\n    }" { (if_statement "if (image->debug == MagickFalse) {\n        CVar2 = image->colorspace;\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }" if (parenthesized_expression "(image->debug == MagickFalse)" ( (binary_expression "image->debug == MagickFalse" (field_expression "image->debug" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        CVar2 = image->colorspace;\n      }" { (expression_statement "CVar2 = image->colorspace;" (assignment_expression "CVar2 = image->colorspace" identifier = (field_expression "image->colorspace" identifier -> field_identifier)) ;) }) (else_clause "else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }" else (compound_statement "{\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        CVar2 = image->colorspace;\n      }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" ( number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c" identifier + number_literal) , number_literal ))) ;) (expression_statement "CVar2 = image->colorspace;" (assignment_expression "CVar2 = image->colorspace" identifier = (field_expression "image->colorspace" identifier -> field_identifier)) ;) }))) (if_statement "if (CVar2 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }" if (parenthesized_expression "(CVar2 == colorspace)" ( (binary_expression "CVar2 == colorspace" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);\n        return MVar3;\n      }" { comment comment (expression_statement "MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception);" (assignment_expression "MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception)" identifier = (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(image,colorspace,exception)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" ( (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" * (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,colorspace,exception)" ( identifier , identifier , identifier )))) ;) (return_statement "return MVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" ( (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" * (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" ( (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" * (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c" identifier + number_literal) ))) ;) (if_statement "if (colorspace == UndefinedColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }" if (parenthesized_expression "(colorspace == UndefinedColorspace)" ( (binary_expression "colorspace == UndefinedColorspace" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);\n        return MVar3;\n      }" { comment comment (expression_statement "MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception);" (assignment_expression "MVar3 = (*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception)" identifier = (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(image,0,exception)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" ( (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" * (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,0,exception)" ( identifier , number_literal , identifier )))) ;) (return_statement "return MVar3;" return identifier ;) })) (if_statement "if (1 < colorspace - sRGBColorspace) {\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }" if (parenthesized_expression "(1 < colorspace - sRGBColorspace)" ( (binary_expression "1 < colorspace - sRGBColorspace" number_literal < (binary_expression "colorspace - sRGBColorspace" identifier - identifier)) )) (compound_statement "{\n        if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar4 = sRGBTransformImage(image,colorspace,exception);\n        if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar3;\n      }" { (if_statement "if (image->colorspace - sRGBColorspace < 2) {\n          MVar3 = MagickTrue;\n        }\n        else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }" if (parenthesized_expression "(image->colorspace - sRGBColorspace < 2)" ( (binary_expression "image->colorspace - sRGBColorspace < 2" (binary_expression "image->colorspace - sRGBColorspace" (field_expression "image->colorspace" identifier -> field_identifier) - identifier) < number_literal) )) (compound_statement "{\n          MVar3 = MagickTrue;\n        }" { (expression_statement "MVar3 = MagickTrue;" (assignment_expression "MVar3 = MagickTrue" identifier = identifier) ;) }) (else_clause "else {\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }" else (compound_statement "{\n          MVar3 = TransformsRGBImage(image,exception);\n          if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }\n        }" { (expression_statement "MVar3 = TransformsRGBImage(image,exception);" (assignment_expression "MVar3 = TransformsRGBImage(image,exception)" identifier = (call_expression "TransformsRGBImage(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (if_statement "if (MVar3 == MagickFalse) {\n            return MagickFalse;\n          }" if (parenthesized_expression "(MVar3 == MagickFalse)" ( (binary_expression "MVar3 == MagickFalse" identifier == identifier) )) (compound_statement "{\n            return MagickFalse;\n          }" { (return_statement "return MagickFalse;" return identifier ;) })) }))) (expression_statement "MVar4 = sRGBTransformImage(image,colorspace,exception);" (assignment_expression "MVar4 = sRGBTransformImage(image,colorspace,exception)" identifier = (call_expression "sRGBTransformImage(image,colorspace,exception)" identifier (argument_list "(image,colorspace,exception)" ( identifier , identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) {\n          return MagickFalse;\n        }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n          return MagickFalse;\n        }" { (return_statement "return MagickFalse;" return identifier ;) })) (return_statement "return MVar3;" return identifier ;) })) (expression_statement "MVar3 = TransformsRGBImage(image,exception);" (assignment_expression "MVar3 = TransformsRGBImage(image,exception)" identifier = (call_expression "TransformsRGBImage(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (return_statement "return MVar3;" return identifier ;) })) }))) (expression_statement "uVar18 = 0x5e6;" (assignment_expression "uVar18 = 0x5e6" identifier = number_literal) ;) (expression_statement "puVar23 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;" (assignment_expression "puVar23 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar17 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal)) ;) (expression_statement "puVar16 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;" (assignment_expression "puVar16 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier + number_literal)) ;) (expression_statement "puVar35 = PTR___assert_fail_003a9608;" (assignment_expression "puVar35 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)();" (call_expression "(*(code *)PTR___assert_fail_003a9608)()" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_b0 = puVar35 + 0x3416c0;" (assignment_expression "puStack_b0 = puVar35 + 0x3416c0" identifier = (binary_expression "puVar35 + 0x3416c0" identifier + number_literal)) ;) (expression_statement "dVar38 = *(double *)(puVar17 + 0x248);" (assignment_expression "dVar38 = *(double *)(puVar17 + 0x248)" identifier = (pointer_expression "*(double *)(puVar17 + 0x248)" * (cast_expression "(double *)(puVar17 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x248)" ( (binary_expression "puVar17 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = *(double *)(puVar16 + 0x248);" (assignment_expression "dVar47 = *(double *)(puVar16 + 0x248)" identifier = (pointer_expression "*(double *)(puVar16 + 0x248)" * (cast_expression "(double *)(puVar16 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x248)" ( (binary_expression "puVar16 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar33 = *(int **)(puVar35 + 0x33a040);" (assignment_expression "piVar33 = *(int **)(puVar35 + 0x33a040)" identifier = (pointer_expression "*(int **)(puVar35 + 0x33a040)" * (cast_expression "(int **)(puVar35 + 0x33a040)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x33a040)" ( (binary_expression "puVar35 + 0x33a040" identifier + number_literal) ))))) ;) (expression_statement "iStack_6c = *piVar33;" (assignment_expression "iStack_6c = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) (if_statement "if (dVar38 < dVar47) {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar47 = dVar47 * dVar47;\n  }\n  else {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }\n  }" if (parenthesized_expression "(dVar38 < dVar47)" ( (binary_expression "dVar38 < dVar47" identifier < identifier) )) (compound_statement "{\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar47 = dVar47 * dVar47;\n  }" { (expression_statement "iVar8 = *(int *)(puVar35 + 0x3396f8);" (assignment_expression "iVar8 = *(int *)(puVar35 + 0x3396f8)" identifier = (pointer_expression "*(int *)(puVar35 + 0x3396f8)" * (cast_expression "(int *)(puVar35 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + 0x3396f8)" ( (binary_expression "puVar35 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" if (parenthesized_expression "(dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8))" ( (binary_expression "dVar47 <= *(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" identifier <= (pointer_expression "*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(puVar35 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar35 + 0x3396f8)" * (cast_expression "(int *)(puVar35 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + 0x3396f8)" ( (binary_expression "puVar35 + 0x3396f8" identifier + number_literal) )))) + number_literal) ))))) )) (goto_statement "goto LAB_0006f270;" goto statement_identifier ;)) (labeled_statement "LAB_0006f470:\n    dVar47 = dVar47 * dVar47;" statement_identifier : (expression_statement "dVar47 = dVar47 * dVar47;" (assignment_expression "dVar47 = dVar47 * dVar47" identifier = (binary_expression "dVar47 * dVar47" identifier * identifier)) ;)) }) (else_clause "else {\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }\n  }" else (compound_statement "{\n    iVar8 = *(int *)(puVar35 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }\n  }" { (expression_statement "iVar8 = *(int *)(puVar35 + 0x3396f8);" (assignment_expression "iVar8 = *(int *)(puVar35 + 0x3396f8)" identifier = (pointer_expression "*(int *)(puVar35 + 0x3396f8)" * (cast_expression "(int *)(puVar35 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + 0x3396f8)" ( (binary_expression "puVar35 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38) {\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }\n    else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }" if (parenthesized_expression "(*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38)" ( (binary_expression "*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8) < dVar38" (pointer_expression "*(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar35 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(puVar35 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar35 + 0x3396f8)" * (cast_expression "(int *)(puVar35 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + 0x3396f8)" ( (binary_expression "puVar35 + 0x3396f8" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n      if (dVar38 < dVar47) goto LAB_0006f470;\n      dVar47 = dVar38 * dVar38;\n    }" { (if_statement "if (dVar38 < dVar47) goto LAB_0006f470;" if (parenthesized_expression "(dVar38 < dVar47)" ( (binary_expression "dVar38 < dVar47" identifier < identifier) )) (goto_statement "goto LAB_0006f470;" goto statement_identifier ;)) (expression_statement "dVar47 = dVar38 * dVar38;" (assignment_expression "dVar47 = dVar38 * dVar38" identifier = (binary_expression "dVar38 * dVar38" identifier * identifier)) ;) }) (else_clause "else {\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }" else (compound_statement "{\nLAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);\n    }" { (labeled_statement "LAB_0006f270:\n      dVar47 = *(double *)(iVar8 + -0x5ad0);" statement_identifier : (expression_statement "dVar47 = *(double *)(iVar8 + -0x5ad0);" (assignment_expression "dVar47 = *(double *)(iVar8 + -0x5ad0)" identifier = (pointer_expression "*(double *)(iVar8 + -0x5ad0)" * (cast_expression "(double *)(iVar8 + -0x5ad0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x5ad0)" ( (binary_expression "iVar8 + -0x5ad0" identifier + number_literal) ))))) ;)) }))) }))) (expression_statement "uVar21 = *(uint *)(puVar16 + 0x1c);" (assignment_expression "uVar21 = *(uint *)(puVar16 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar16 + 0x1c)" * (cast_expression "(uint *)(puVar16 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c)" ( (binary_expression "puVar16 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c)) {\n    uVar21 = *(uint *)(puVar17 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c))" ( (binary_expression "*(uint *)(puVar16 + 0x1c) <= *(uint *)(puVar17 + 0x1c)" (pointer_expression "*(uint *)(puVar16 + 0x1c)" * (cast_expression "(uint *)(puVar16 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c)" ( (binary_expression "puVar16 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar17 + 0x1c)" * (cast_expression "(uint *)(puVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x1c)" ( (binary_expression "puVar17 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar21 = *(uint *)(puVar17 + 0x1c);\n  }" { (expression_statement "uVar21 = *(uint *)(puVar17 + 0x1c);" (assignment_expression "uVar21 = *(uint *)(puVar17 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x1c)" * (cast_expression "(uint *)(puVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x1c)" ( (binary_expression "puVar17 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar5 = *(uint *)(puVar16 + 0x18);" (assignment_expression "uVar5 = *(uint *)(puVar16 + 0x18)" identifier = (pointer_expression "*(uint *)(puVar16 + 0x18)" * (cast_expression "(uint *)(puVar16 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x18)" ( (binary_expression "puVar16 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18)) {\n    uVar5 = *(uint *)(puVar17 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18))" ( (binary_expression "*(uint *)(puVar16 + 0x18) <= *(uint *)(puVar17 + 0x18)" (pointer_expression "*(uint *)(puVar16 + 0x18)" * (cast_expression "(uint *)(puVar16 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x18)" ( (binary_expression "puVar16 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar17 + 0x18)" * (cast_expression "(uint *)(puVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x18)" ( (binary_expression "puVar17 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar5 = *(uint *)(puVar17 + 0x18);\n  }" { (expression_statement "uVar5 = *(uint *)(puVar17 + 0x18);" (assignment_expression "uVar5 = *(uint *)(puVar17 + 0x18)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x18)" * (cast_expression "(uint *)(puVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x18)" ( (binary_expression "puVar17 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "pIStack_68 = unaff_s0;" (assignment_expression "pIStack_68 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar6 = (**(code **)(puVar35 + 0x33a564))(puVar16,puVar23);" (assignment_expression "uVar6 = (**(code **)(puVar35 + 0x33a564))(puVar16,puVar23)" identifier = (call_expression "(**(code **)(puVar35 + 0x33a564))(puVar16,puVar23)" (parenthesized_expression "(**(code **)(puVar35 + 0x33a564))" ( (pointer_expression "**(code **)(puVar35 + 0x33a564)" * (pointer_expression "*(code **)(puVar35 + 0x33a564)" * (cast_expression "(code **)(puVar35 + 0x33a564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x33a564)" ( (binary_expression "puVar35 + 0x33a564" identifier + number_literal) ))))) )) (argument_list "(puVar16,puVar23)" ( identifier , identifier )))) ;) (expression_statement "uVar7 = (**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23);" (assignment_expression "uVar7 = (**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x715c))(puVar17,puVar23)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x715c))" ( (pointer_expression "**(code **)(puStack_b0 + -0x715c)" * (pointer_expression "*(code **)(puStack_b0 + -0x715c)" * (cast_expression "(code **)(puStack_b0 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x715c)" ( (binary_expression "puStack_b0 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar23)" ( identifier , identifier )))) ;) (expression_statement "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16);" (assignment_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar16)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (if_statement "if (((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&\n     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar31 = uVar21;\n    if ((int)uVar21 < 0) {\n      uVar31 = uVar21 + 0x3f;\n    }\n    pdVar19 = (double *)((int)uVar31 >> 6);\n    if (extraout_v1 < (int)pdVar19) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar21 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar19 = (double *)0x1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar51 = (*pcVar36)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&\n     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3))))" ( (binary_expression "((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)) &&\n     ((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))" (parenthesized_expression "((iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3))" ( (binary_expression "(iVar8 == 4) || (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)" (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)" ( (comma_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3" (assignment_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar16)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) , (binary_expression "iVar8 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)))" ( (parenthesized_expression "(iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3))" ( (comma_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)" (assignment_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar16)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) , (binary_expression "iVar8 == 4 ||\n      (iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)" (binary_expression "iVar8 == 4" identifier == number_literal) || (parenthesized_expression "(iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3)" ( (comma_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16), iVar8 == 3" (assignment_expression "iVar8 = (**(code **)(puStack_b0 + -0x73fc))(puVar16)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar16)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) , (binary_expression "iVar8 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar31 = uVar21;\n    if ((int)uVar21 < 0) {\n      uVar31 = uVar21 + 0x3f;\n    }\n    pdVar19 = (double *)((int)uVar31 >> 6);\n    if (extraout_v1 < (int)pdVar19) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar21 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar19 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar31 = uVar21;" (assignment_expression "uVar31 = uVar21" identifier = identifier) ;) (if_statement "if ((int)uVar21 < 0) {\n      uVar31 = uVar21 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar21 < 0)" ( (binary_expression "(int)uVar21 < 0" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar31 = uVar21 + 0x3f;\n    }" { (expression_statement "uVar31 = uVar21 + 0x3f;" (assignment_expression "uVar31 = uVar21 + 0x3f" identifier = (binary_expression "uVar21 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar19 = (double *)((int)uVar31 >> 6);" (assignment_expression "pdVar19 = (double *)((int)uVar31 >> 6)" identifier = (cast_expression "(double *)((int)uVar31 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)uVar31 >> 6)" ( (binary_expression "(int)uVar31 >> 6" (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar19) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar21 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < (int)pdVar19)" ( (binary_expression "extraout_v1 < (int)pdVar19" identifier < (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar19 = pdStack_a4;\n    }" { (expression_statement "pdStack_a4 = pdVar19;" (assignment_expression "pdStack_a4 = pdVar19" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_02 < 2;" (assignment_expression "bVar1 = extraout_v1_02 < 2" identifier = (binary_expression "extraout_v1_02 < 2" identifier < number_literal)) ;) (expression_statement "pdVar19 = pdStack_a4;" (assignment_expression "pdVar19 = pdStack_a4" identifier = identifier) ;) }) (else_clause "else {\n      bVar1 = (int)uVar21 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar21 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar21 < 0x80;" (assignment_expression "bVar1 = (int)uVar21 < 0x80" identifier = (binary_expression "(int)uVar21 < 0x80" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar19 = (double *)0x1;\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      pdStack_a4 = pdVar19;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar19 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" { (expression_statement "pdStack_a4 = pdVar19;" (assignment_expression "pdStack_a4 = pdVar19" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar19 = pdStack_a4;" (assignment_expression "pdVar19 = pdStack_a4" identifier = identifier) ;) (if_statement "if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" if (parenthesized_expression "(extraout_v1_01 < (int)pdStack_a4)" ( (binary_expression "extraout_v1_01 < (int)pdStack_a4" identifier < (cast_expression "(int)pdStack_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" { (expression_statement "pcVar36 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar36 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f4b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      pdVar19 = (double *)0x1;\n    }" else (compound_statement "{\n      pdVar19 = (double *)0x1;\n    }" { (expression_statement "pdVar19 = (double *)0x1;" (assignment_expression "pdVar19 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar51 = (*pcVar36)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar51 = (*pcVar36)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }\n  }" { (expression_statement "uVar51 = (**(code **)(puStack_b0 + -0x7774))(7);" (assignment_expression "uVar51 = (**(code **)(puStack_b0 + -0x7774))(7)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" { (expression_statement "pcVar36 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar36 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar51 = (*pcVar36)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar36 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" { (expression_statement "uVar51 = (*pcVar36)(7);" (assignment_expression "uVar51 = (*pcVar36)(7)" identifier = (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f310;" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f310;" goto statement_identifier ;)) (expression_statement "pcVar36 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar36 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar19 = (double *)0x1;\n          goto LAB_0006f328;\n        }" { (expression_statement "pdVar19 = (double *)0x1;" (assignment_expression "pdVar19 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0006f328;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }" else (compound_statement "{\nLAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);\n    }" { (labeled_statement "LAB_0006f310:\n      pcVar36 = *(code **)(puStack_b0 + -0x7774);" statement_identifier : (expression_statement "pcVar36 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar36 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar51 = (*pcVar36)(7);" (assignment_expression "uVar51 = (*pcVar36)(7)" identifier = (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)) {\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }\n    else {\n      pdVar19 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2)" ( (comma_expression "pcVar36 = *(code **)(puStack_b0 + -0x7774), (uint)uVar51 < 2" (assignment_expression "pcVar36 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) , (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f4b4:\n      (*pcVar36)(7);\n      pdVar19 = extraout_v1_00;\n    }" { (labeled_statement "LAB_0006f4b4:\n      (*pcVar36)(7);" statement_identifier : (expression_statement "(*pcVar36)(7);" (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "pdVar19 = extraout_v1_00;" (assignment_expression "pdVar19 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      pdVar19 = (double *)0x2;\n    }" else (compound_statement "{\n      pdVar19 = (double *)0x2;\n    }" { (expression_statement "pdVar19 = (double *)0x2;" (assignment_expression "pdVar19 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006f328:\n  uVar24 = 0;" statement_identifier : (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;)) (expression_statement "pdVar20 = &dStack_a0;" (assignment_expression "pdVar20 = &dStack_a0" identifier = (pointer_expression "&dStack_a0" & identifier)) ;) (expression_statement "MStack_78 = MagickTrue;" (assignment_expression "MStack_78 = MagickTrue" identifier = identifier) ;) (expression_statement "dStack_a0 = dVar47;" (assignment_expression "dStack_a0 = dVar47" identifier = identifier) ;) (expression_statement "puStack_98 = puVar16;" (assignment_expression "puStack_98 = puVar16" identifier = identifier) ;) (expression_statement "puStack_94 = puVar17;" (assignment_expression "puStack_94 = puVar17" identifier = identifier) ;) (expression_statement "uStack_90 = uVar18;" (assignment_expression "uStack_90 = uVar18" identifier = identifier) ;) (expression_statement "puStack_8c = puVar23;" (assignment_expression "puStack_8c = puVar23" identifier = identifier) ;) (expression_statement "uStack_88 = uVar6;" (assignment_expression "uStack_88 = uVar6" identifier = identifier) ;) (expression_statement "uStack_84 = uVar7;" (assignment_expression "uStack_84 = uVar7" identifier = identifier) ;) (expression_statement "uStack_80 = uVar5;" (assignment_expression "uStack_80 = uVar5" identifier = identifier) ;) (expression_statement "uStack_7c = uVar21;" (assignment_expression "uStack_7c = uVar21" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7718))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7718)" * (pointer_expression "*(code **)(puStack_b0 + -0x7718)" * (cast_expression "(code **)(puStack_b0 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7718)" ( (binary_expression "puStack_b0 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" ( (binary_expression "*(int *)(puStack_b0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(puStack_b0 + -0x7f78)" * (cast_expression "(int *)(puStack_b0 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_b0 + -0x7f78)" ( (binary_expression "puStack_b0 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "MVar3 = MStack_78;" (assignment_expression "MVar3 = MStack_78" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar7);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" * (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" * (cast_expression "(code **)(puStack_b0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x79bc)" ( (binary_expression "puStack_b0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" * (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" * (cast_expression "(code **)(puStack_b0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x79bc)" ( (binary_expression "puStack_b0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (if_statement "if (iStack_6c == *piVar33) {\n    return MVar3;\n  }" if (parenthesized_expression "(iStack_6c == *piVar33)" ( (binary_expression "iStack_6c == *piVar33" identifier == (pointer_expression "*piVar33" * identifier)) )) (compound_statement "{\n    return MVar3;\n  }" { (return_statement "return MVar3;" return identifier ;) })) (expression_statement "pcVar36 = *(code **)(puStack_b0 + -0x784c);" (assignment_expression "pcVar36 = *(code **)(puStack_b0 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x784c)" * (cast_expression "(code **)(puStack_b0 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x784c)" ( (binary_expression "puStack_b0 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = GetMeanAbsoluteDistortion;" (assignment_expression "pcVar37 = GetMeanAbsoluteDistortion" identifier = identifier) ;) (expression_statement "iVar8 = iStack_6c;" (assignment_expression "iVar8 = iStack_6c" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar32 = *(int **)(pcVar36 + 0x339d18);" (assignment_expression "piVar32 = *(int **)(pcVar36 + 0x339d18)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x339d18)" * (cast_expression "(int **)(pcVar36 + 0x339d18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339d18)" ( (binary_expression "pcVar36 + 0x339d18" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = *(uint *)(iVar8 + 0x1c);" (assignment_expression "uVar31 = *(uint *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c)) {\n    uVar31 = *(uint *)((int)pdVar20 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c))" ( (binary_expression "*(uint *)(iVar8 + 0x1c) <= *(uint *)((int)pdVar20 + 0x1c)" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)((int)pdVar20 + 0x1c)" * (cast_expression "(uint *)((int)pdVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar20 + 0x1c)" ( (binary_expression "(int)pdVar20 + 0x1c" (cast_expression "(int)pdVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    uVar31 = *(uint *)((int)pdVar20 + 0x1c);\n  }" { (expression_statement "uVar31 = *(uint *)((int)pdVar20 + 0x1c);" (assignment_expression "uVar31 = *(uint *)((int)pdVar20 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pdVar20 + 0x1c)" * (cast_expression "(uint *)((int)pdVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar20 + 0x1c)" ( (binary_expression "(int)pdVar20 + 0x1c" (cast_expression "(int)pdVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "uVar30 = *(uint *)(iVar8 + 0x18);" (assignment_expression "uVar30 = *(uint *)(iVar8 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x18)" * (cast_expression "(uint *)(iVar8 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3)) {\n    uVar30 = *(uint *)(pdVar20 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3))" ( (binary_expression "*(uint *)(iVar8 + 0x18) <= *(uint *)(pdVar20 + 3)" (pointer_expression "*(uint *)(iVar8 + 0x18)" * (cast_expression "(uint *)(iVar8 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(pdVar20 + 3)" * (cast_expression "(uint *)(pdVar20 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar20 + 3)" ( (binary_expression "pdVar20 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar30 = *(uint *)(pdVar20 + 3);\n  }" { (expression_statement "uVar30 = *(uint *)(pdVar20 + 3);" (assignment_expression "uVar30 = *(uint *)(pdVar20 + 3)" identifier = (pointer_expression "*(uint *)(pdVar20 + 3)" * (cast_expression "(uint *)(pdVar20 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar20 + 3)" ( (binary_expression "pdVar20 + 3" identifier + number_literal) ))))) ;) })) (expression_statement "MStack_e8 = MVar3;" (assignment_expression "MStack_e8 = MVar3" identifier = identifier) ;) (expression_statement "iStack_ec = *piVar32;" (assignment_expression "iStack_ec = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) (expression_statement "puStack_e4 = puVar17;" (assignment_expression "puStack_e4 = puVar17" identifier = identifier) ;) (expression_statement "uStack_e0 = uVar21;" (assignment_expression "uStack_e0 = uVar21" identifier = identifier) ;) (expression_statement "puStack_dc = puVar23;" (assignment_expression "puStack_dc = puVar23" identifier = identifier) ;) (expression_statement "uStack_d8 = uVar5;" (assignment_expression "uStack_d8 = uVar5" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar33;" (assignment_expression "piStack_d4 = piVar33" identifier = identifier) ;) (expression_statement "uStack_d0 = uVar18;" (assignment_expression "uStack_d0 = uVar18" identifier = identifier) ;) (expression_statement "uStack_cc = uVar6;" (assignment_expression "uStack_cc = uVar6" identifier = identifier) ;) (expression_statement "uStack_c8 = uVar7;" (assignment_expression "uStack_c8 = uVar7" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar37;" (assignment_expression "pcStack_c4 = pcVar37" identifier = identifier) ;) (expression_statement "uVar18 = (**(code **)(pcVar36 + 0x33a23c))();" (assignment_expression "uVar18 = (**(code **)(pcVar36 + 0x33a23c))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x33a23c))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar36 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar36 + 0x33a23c)" * (cast_expression "(code **)(pcVar36 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x33a23c)" ( (binary_expression "pcVar36 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = (**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24);" (assignment_expression "uVar6 = (**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24)" identifier = (call_expression "(**(code **)(pcVar36 + 0x33a23c))(pdVar20,uVar24)" (parenthesized_expression "(**(code **)(pcVar36 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar36 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar36 + 0x33a23c)" * (cast_expression "(code **)(pcVar36 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x33a23c)" ( (binary_expression "pcVar36 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "(pdVar20,uVar24)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8);" (assignment_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339f9c))(iVar8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar36 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar36 + 0x339f9c)" * (cast_expression "(code **)(pcVar36 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339f9c)" ( (binary_expression "pcVar36 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))) {\n    (**(code **)(pcVar36 + 0x339c24))(7);\n    uVar21 = uVar31;\n    if ((int)uVar31 < 0) {\n      uVar21 = uVar31 + 0x3f;\n    }\n    iVar9 = (int)uVar21 >> 6;\n    if (extraout_v1_03 < iVar9) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar31 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar9 = 1;\n    }\n  }\n  else {\n    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3))))" ( (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3))" ( (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" ( (binary_expression "iVar9 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339f9c))(iVar8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar36 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar36 + 0x339f9c)" * (cast_expression "(code **)(pcVar36 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339f9c)" ( (binary_expression "pcVar36 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)))" ( (parenthesized_expression "(iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3))" ( (comma_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339f9c))(iVar8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar36 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar36 + 0x339f9c)" * (cast_expression "(code **)(pcVar36 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339f9c)" ( (binary_expression "pcVar36 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) , (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)" (binary_expression "iVar9 == 4" identifier == number_literal) || (parenthesized_expression "(iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcVar36 + 0x339f9c))(iVar8)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339f9c))(iVar8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar36 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar36 + 0x339f9c)" * (cast_expression "(code **)(pcVar36 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339f9c)" ( (binary_expression "pcVar36 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar36 + 0x339c24))(7);\n    uVar21 = uVar31;\n    if ((int)uVar31 < 0) {\n      uVar21 = uVar31 + 0x3f;\n    }\n    iVar9 = (int)uVar21 >> 6;\n    if (extraout_v1_03 < iVar9) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar31 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar9 = 1;\n    }\n  }" { (expression_statement "(**(code **)(pcVar36 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar36 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x339c24)" * (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar21 = uVar31;" (assignment_expression "uVar21 = uVar31" identifier = identifier) ;) (if_statement "if ((int)uVar31 < 0) {\n      uVar21 = uVar31 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar31 < 0)" ( (binary_expression "(int)uVar31 < 0" (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar21 = uVar31 + 0x3f;\n    }" { (expression_statement "uVar21 = uVar31 + 0x3f;" (assignment_expression "uVar21 = uVar31 + 0x3f" identifier = (binary_expression "uVar31 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar9 = (int)uVar21 >> 6;" (assignment_expression "iVar9 = (int)uVar21 >> 6" identifier = (binary_expression "(int)uVar21 >> 6" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (extraout_v1_03 < iVar9) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar31 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < iVar9)" ( (binary_expression "extraout_v1_03 < iVar9" identifier < identifier) )) (compound_statement "{\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcVar36 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar36 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x339c24)" * (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" identifier = (binary_expression "extraout_v1_06 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar31 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar31 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar31 < 0x80;" (assignment_expression "bVar1 = (int)uVar31 < 0x80" identifier = (binary_expression "(int)uVar31 < 0x80" (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar9 = 1;\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcVar36 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }" { (expression_statement "(**(code **)(pcVar36 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar36 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x339c24)" * (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_05 < iVar9) {\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" if (parenthesized_expression "(extraout_v1_05 < iVar9)" ( (binary_expression "extraout_v1_05 < iVar9" identifier < identifier) )) (compound_statement "{\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" { (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x339c24);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f8ac;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar9 = 1;\n    }" else (compound_statement "{\n      iVar9 = 1;\n    }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }\n  }" else (compound_statement "{\n    uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }\n  }" { (expression_statement "uVar51 = (**(code **)(pcVar36 + 0x339c24))(7);" (assignment_expression "uVar51 = (**(code **)(pcVar36 + 0x339c24))(7)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x339c24)" * (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) == 0) {\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n      if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }" { (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x339c24);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar51 = (*pcVar37)(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar37 = *(code **)(pcVar36 + 0x339c24);\n        if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }\n      }" { (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" identifier = (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_0006f60c;" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f60c;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x339c24);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar9 = 1;\n          goto LAB_0006f624;\n        }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006f624;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }" else (compound_statement "{\nLAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);\n    }" { (labeled_statement "LAB_0006f60c:\n      pcVar37 = *(code **)(pcVar36 + 0x339c24);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x339c24);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" identifier = (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)) {\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }\n    else {\n      iVar9 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) &&\n       (pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2)" ( (comma_expression "pcVar37 = *(code **)(pcVar36 + 0x339c24), (uint)uVar51 < 2" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339c24)" * (cast_expression "(code **)(pcVar36 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c24)" ( (binary_expression "pcVar36 + 0x339c24" identifier + number_literal) ))))) , (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f8ac:\n      (*pcVar37)(7);\n      iVar9 = extraout_v1_04;\n    }" { (labeled_statement "LAB_0006f8ac:\n      (*pcVar37)(7);" statement_identifier : (expression_statement "(*pcVar37)(7);" (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar9 = extraout_v1_04;" (assignment_expression "iVar9 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n      iVar9 = 2;\n    }" else (compound_statement "{\n      iVar9 = 2;\n    }" { (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006f624:\n  piVar25 = (int *)0x0;" statement_identifier : (expression_statement "piVar25 = (int *)0x0;" (assignment_expression "piVar25 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piVar33 = &iStack_120;" (assignment_expression "piVar33 = &iStack_120" identifier = (pointer_expression "&iStack_120" & identifier)) ;) (expression_statement "MStack_f4 = MagickTrue;" (assignment_expression "MStack_f4 = MagickTrue" identifier = identifier) ;) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" identifier = number_literal) ;) (expression_statement "iStack_120 = 0;" (assignment_expression "iStack_120 = 0" identifier = number_literal) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "iStack_118 = iVar8;" (assignment_expression "iStack_118 = iVar8" identifier = identifier) ;) (expression_statement "pdStack_114 = pdVar20;" (assignment_expression "pdStack_114 = pdVar20" identifier = identifier) ;) (expression_statement "pdStack_110 = pdVar19;" (assignment_expression "pdStack_110 = pdVar19" identifier = identifier) ;) (expression_statement "uStack_10c = uVar24;" (assignment_expression "uStack_10c = uVar24" identifier = identifier) ;) (expression_statement "uStack_108 = uVar18;" (assignment_expression "uStack_108 = uVar18" identifier = identifier) ;) (expression_statement "uStack_104 = uVar6;" (assignment_expression "uStack_104 = uVar6" identifier = identifier) ;) (expression_statement "uStack_fc = uVar30;" (assignment_expression "uStack_fc = uVar30" identifier = identifier) ;) (expression_statement "uStack_f8 = uVar31;" (assignment_expression "uStack_f8 = uVar31" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x339c80))(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9);" (call_expression "(**(code **)(pcVar36 + 0x339c80))(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339c80))" ( (pointer_expression "**(code **)(pcVar36 + 0x339c80)" * (pointer_expression "*(code **)(pcVar36 + 0x339c80)" * (cast_expression "(code **)(pcVar36 + 0x339c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339c80)" ( (binary_expression "pcVar36 + 0x339c80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar36 + 0x339420) + 0x2498,piVar33,iVar9)" ( (binary_expression "*(int *)(pcVar36 + 0x339420) + 0x2498" (pointer_expression "*(int *)(pcVar36 + 0x339420)" * (cast_expression "(int *)(pcVar36 + 0x339420)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x339420)" ( (binary_expression "pcVar36 + 0x339420" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "MVar3 = MStack_f4;" (assignment_expression "MVar3 = MStack_f4" identifier = identifier) ;) (expression_statement "uVar7 = uStack_11c;" (assignment_expression "uVar7 = uStack_11c" identifier = identifier) ;) (expression_statement "iVar9 = iStack_120;" (assignment_expression "iVar9 = iStack_120" identifier = identifier) ;) (expression_statement "dVar38 = (double)CONCAT44(iStack_120,uStack_11c);" (assignment_expression "dVar38 = (double)CONCAT44(iStack_120,uStack_11c)" identifier = (cast_expression "(double)CONCAT44(iStack_120,uStack_11c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iStack_120,uStack_11c)" identifier (argument_list "(iStack_120,uStack_11c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar36 + 0x3399dc))(uVar6);" (call_expression "(**(code **)(pcVar36 + 0x3399dc))(uVar6)" (parenthesized_expression "(**(code **)(pcVar36 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar36 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar36 + 0x3399dc)" * (cast_expression "(code **)(pcVar36 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x3399dc)" ( (binary_expression "pcVar36 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x3399dc))(uVar18);" (call_expression "(**(code **)(pcVar36 + 0x3399dc))(uVar18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar36 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar36 + 0x3399dc)" * (cast_expression "(code **)(pcVar36 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x3399dc)" ( (binary_expression "pcVar36 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar38) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar38;\n  }\n  else {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar9,uVar7);\n  }" if (parenthesized_expression "(0.0 <= dVar38)" ( (binary_expression "0.0 <= dVar38" number_literal <= identifier) )) (compound_statement "{\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar38;\n  }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_128 = dVar38;" (assignment_expression "dStack_128 = dVar38" identifier = identifier) ;) }) (else_clause "else {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar9,uVar7);\n  }" else (compound_statement "{\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar9,uVar7);\n  }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x1a78)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x1a78" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_128 = -(double)CONCAT44(iVar9,uVar7);" (assignment_expression "dStack_128 = -(double)CONCAT44(iVar9,uVar7)" identifier = (unary_expression "-(double)CONCAT44(iVar9,uVar7)" - (cast_expression "(double)CONCAT44(iVar9,uVar7)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar9,uVar7)" identifier (argument_list "(iVar9,uVar7)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;\n  }\n  else {\n    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128)" ( (binary_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8) <= dStack_128" (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;\n  }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38;" (assignment_expression "dVar47 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38" identifier = (binary_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438) / dVar38" (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);\n  }" else (compound_statement "{\n    dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);\n  }" { (expression_statement "dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8);" (assignment_expression "dVar47 = dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" identifier = (binary_expression "dVar47 / *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar20 = pdVar19;" (assignment_expression "pdVar20 = pdVar19" identifier = identifier) ;) (do_statement "do {\n    pdVar10 = pdVar20 + 1;\n    *pdVar20 = *pdVar20 * dVar47;\n    pdVar20 = pdVar10;\n  } while (pdVar19 + 0x41 != pdVar10);" do (compound_statement "{\n    pdVar10 = pdVar20 + 1;\n    *pdVar20 = *pdVar20 * dVar47;\n    pdVar20 = pdVar10;\n  }" { (expression_statement "pdVar10 = pdVar20 + 1;" (assignment_expression "pdVar10 = pdVar20 + 1" identifier = (binary_expression "pdVar20 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar20 = *pdVar20 * dVar47;" (assignment_expression "*pdVar20 = *pdVar20 * dVar47" (pointer_expression "*pdVar20" * identifier) = (binary_expression "*pdVar20 * dVar47" (pointer_expression "*pdVar20" * identifier) * identifier)) ;) (expression_statement "pdVar20 = pdVar10;" (assignment_expression "pdVar20 = pdVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar19 + 0x41 != pdVar10)" ( (binary_expression "pdVar19 + 0x41 != pdVar10" (binary_expression "pdVar19 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "pdVar20 = (double *)0x0;" (assignment_expression "pdVar20 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(iVar8 + 0x2c0)) {\n    piVar25 = *(int **)(iVar8 + 0x2d0);\n    piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;\n    piVar13 = piVar25;\n    do {\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar33);\n    if (pdVar20 != (double *)0x0) {\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar8 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar8 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar25 = *(int **)(iVar8 + 0x2d0);\n    piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;\n    piVar13 = piVar25;\n    do {\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar33);\n    if (pdVar20 != (double *)0x0) {\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" { (expression_statement "piVar25 = *(int **)(iVar8 + 0x2d0);" (assignment_expression "piVar25 = *(int **)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar8 + 0x2d0)" * (cast_expression "(int **)(iVar8 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3;" (assignment_expression "piVar33 = piVar25 + *(int *)(iVar8 + 0x2c0) * 3" identifier = (binary_expression "piVar25 + *(int *)(iVar8 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar8 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar13 = piVar25;" (assignment_expression "piVar13 = piVar25" identifier = identifier) ;) (do_statement "do {\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar33);" do (compound_statement "{\n      if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    }" { (if_statement "if ((piVar25[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }" if (parenthesized_expression "((piVar25[*piVar13 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar25[*piVar13 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar25[*piVar13 * 3 + 1] & 2U)" ( (binary_expression "piVar25[*piVar13 * 3 + 1] & 2U" (subscript_expression "piVar25[*piVar13 * 3 + 1]" identifier [ (binary_expression "*piVar13 * 3 + 1" (binary_expression "*piVar13 * 3" (pointer_expression "*piVar13" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        pdVar20 = (double *)((int)pdVar20 + 1);\n      }" { (expression_statement "pdVar20 = (double *)((int)pdVar20 + 1);" (assignment_expression "pdVar20 = (double *)((int)pdVar20 + 1)" identifier = (cast_expression "(double *)((int)pdVar20 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar20 + 1)" ( (binary_expression "(int)pdVar20 + 1" (cast_expression "(int)pdVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "piVar13 = piVar13 + 3;" (assignment_expression "piVar13 = piVar13 + 3" identifier = (binary_expression "piVar13 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar13 != piVar33)" ( (binary_expression "piVar13 != piVar33" identifier != identifier) )) ;) (if_statement "if (pdVar20 != (double *)0x0) {\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" if (parenthesized_expression "(pdVar20 != (double *)0x0)" ( (binary_expression "pdVar20 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dVar38 = (double)(int)pdVar20;\n      if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" { (expression_statement "dVar38 = (double)(int)pdVar20;" (assignment_expression "dVar38 = (double)(int)pdVar20" identifier = (cast_expression "(double)(int)pdVar20" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar20 < 0) {\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }" if (parenthesized_expression "((int)pdVar20 < 0)" ( (binary_expression "(int)pdVar20 < 0" (cast_expression "(int)pdVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);\n      }" { (expression_statement "dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418);" (assignment_expression "dVar38 = dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418)" identifier = (binary_expression "dVar38 + *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x1418)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x1418" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_0006f778;" goto statement_identifier ;) })) })) (expression_statement "dVar38 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438);" (assignment_expression "dVar38 = *(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar36 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar36 + 0x3393c8)" * (cast_expression "(int *)(pcVar36 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x3393c8)" ( (binary_expression "pcVar36 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_0006f778:\n  iVar8 = *piVar32;" statement_identifier : (expression_statement "iVar8 = *piVar32;" (assignment_expression "iVar8 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;)) (expression_statement "pdVar19[0x40] = pdVar19[0x40] / dVar38;" (assignment_expression "pdVar19[0x40] = pdVar19[0x40] / dVar38" (subscript_expression "pdVar19[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar19[0x40] / dVar38" (subscript_expression "pdVar19[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (iStack_ec == iVar8) {\n    return MVar3;\n  }" if (parenthesized_expression "(iStack_ec == iVar8)" ( (binary_expression "iStack_ec == iVar8" identifier == identifier) )) (compound_statement "{\n    return MVar3;\n  }" { (return_statement "return MVar3;" return identifier ;) })) (expression_statement "pcVar36 = *(code **)(pcVar36 + 0x339b4c);" (assignment_expression "pcVar36 = *(code **)(pcVar36 + 0x339b4c)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339b4c)" * (cast_expression "(code **)(pcVar36 + 0x339b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339b4c)" ( (binary_expression "pcVar36 + 0x339b4c" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iStack_ec;" (assignment_expression "iVar8 = iStack_ec" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar21 = *(uint *)(iVar8 + 0x1c);" (assignment_expression "uVar21 = *(uint *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7]) {\n    uVar21 = piVar33[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7])" ( (binary_expression "*(uint *)(iVar8 + 0x1c) <= (uint)piVar33[7]" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar33[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar33[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar21 = piVar33[7];\n  }" { (expression_statement "uVar21 = piVar33[7];" (assignment_expression "uVar21 = piVar33[7]" identifier = (subscript_expression "piVar33[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar5 = *(uint *)(iVar8 + 0x18);" (assignment_expression "uVar5 = *(uint *)(iVar8 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x18)" * (cast_expression "(uint *)(iVar8 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6]) {\n    uVar5 = piVar33[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6])" ( (binary_expression "*(uint *)(iVar8 + 0x18) <= (uint)piVar33[6]" (pointer_expression "*(uint *)(iVar8 + 0x18)" * (cast_expression "(uint *)(iVar8 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar33[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar33[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar5 = piVar33[6];\n  }" { (expression_statement "uVar5 = piVar33[6];" (assignment_expression "uVar5 = piVar33[6]" identifier = (subscript_expression "piVar33[6]" identifier [ number_literal ])) ;) })) (expression_statement "uVar18 = (**(code **)(pcVar36 + 0x339e44))();" (assignment_expression "uVar18 = (**(code **)(pcVar36 + 0x339e44))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x339e44))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar36 + 0x339e44)" * (pointer_expression "*(code **)(pcVar36 + 0x339e44)" * (cast_expression "(code **)(pcVar36 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339e44)" ( (binary_expression "pcVar36 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = (**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25);" (assignment_expression "uVar6 = (**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339e44))(piVar33,piVar25)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar36 + 0x339e44)" * (pointer_expression "*(code **)(pcVar36 + 0x339e44)" * (cast_expression "(code **)(pcVar36 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339e44)" ( (binary_expression "pcVar36 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "(piVar33,piVar25)" ( identifier , identifier )))) ;) (if_statement "if ((int)uVar21 < 1) {\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    MVar3 = MagickTrue;\n    dVar49 = 0.0;\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n  }\n  else {\n    iVar9 = *(int *)(pcVar36 + 0x338fd0);\n    iVar14 = *(int *)(pcVar36 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    dVar50 = *(double *)(iVar9 + 0x1438);\n    uVar31 = 0;\n    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);\n    dVar49 = 0.0;\n    pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n    dVar40 = dVar50;\n    do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);\n    MVar3 = MagickTrue;\n  }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    MVar3 = MagickTrue;\n    dVar49 = 0.0;\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n  }" { (expression_statement "iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar36 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x338fd0)" * (cast_expression "(int *)(pcVar36 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x338fd0)" ( (binary_expression "pcVar36 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "MVar3 = MagickTrue;" (assignment_expression "MVar3 = MagickTrue" identifier = identifier) ;) (expression_statement "dVar49 = 0.0;" (assignment_expression "dVar49 = 0.0" identifier = number_literal) ;) (expression_statement "dVar38 = dVar49;" (assignment_expression "dVar38 = dVar49" identifier = identifier) ;) (expression_statement "dVar47 = dVar49;" (assignment_expression "dVar47 = dVar49" identifier = identifier) ;) }) (else_clause "else {\n    iVar9 = *(int *)(pcVar36 + 0x338fd0);\n    iVar14 = *(int *)(pcVar36 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    dVar50 = *(double *)(iVar9 + 0x1438);\n    uVar31 = 0;\n    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);\n    dVar49 = 0.0;\n    pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n    dVar40 = dVar50;\n    do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);\n    MVar3 = MagickTrue;\n  }" else (compound_statement "{\n    iVar9 = *(int *)(pcVar36 + 0x338fd0);\n    iVar14 = *(int *)(pcVar36 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);\n    dVar50 = *(double *)(iVar9 + 0x1438);\n    uVar31 = 0;\n    uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);\n    dVar49 = 0.0;\n    pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    dVar38 = dVar49;\n    dVar47 = dVar49;\n    dVar40 = dVar50;\n    do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);\n    MVar3 = MagickTrue;\n  }" { (expression_statement "iVar9 = *(int *)(pcVar36 + 0x338fd0);" (assignment_expression "iVar9 = *(int *)(pcVar36 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x338fd0)" * (cast_expression "(int *)(pcVar36 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x338fd0)" ( (binary_expression "pcVar36 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(pcVar36 + 0x338fd0);" (assignment_expression "iVar14 = *(int *)(pcVar36 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x338fd0)" * (cast_expression "(int *)(pcVar36 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x338fd0)" ( (binary_expression "pcVar36 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_1b0 = *(int *)(pcVar36 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar36 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x338fd0)" * (cast_expression "(int *)(pcVar36 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x338fd0)" ( (binary_expression "pcVar36 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = *(double *)(iVar9 + 0x1438);" (assignment_expression "dVar50 = *(double *)(iVar9 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar9 + 0x1438)" * (cast_expression "(double *)(iVar9 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1438)" ( (binary_expression "iVar9 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708);" (assignment_expression "uVar48 = (ulonglong)*(uint *)(iVar14 + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar14 + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar14 + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x3708)" ( (binary_expression "iVar14 + 0x3708" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = 0.0;" (assignment_expression "dVar49 = 0.0" identifier = number_literal) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x339d4c);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339d4c)" * (cast_expression "(code **)(pcVar36 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339d4c)" ( (binary_expression "pcVar36 + 0x339d4c" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = dVar49;" (assignment_expression "dVar38 = dVar49" identifier = identifier) ;) (expression_statement "dVar47 = dVar49;" (assignment_expression "dVar47 = dVar49" identifier = identifier) ;) (expression_statement "dVar40 = dVar50;" (assignment_expression "dVar40 = dVar50" identifier = identifier) ;) (do_statement "do {\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    } while (uVar31 != uVar21);" do (compound_statement "{\n      pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);\n      iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);\n      if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }\nLAB_0006fc4c:\n      uVar31 = uVar31 + 1;\n      pcVar37 = *(code **)(pcVar36 + 0x339d4c);\n    }" { (expression_statement "pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25);" (assignment_expression "pfVar11 = (float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25)" identifier = (cast_expression "(float *)(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(uVar18,0,uVar31,uVar5,1,piVar25)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(uVar18,0,uVar31,uVar5,1,piVar25)" ( identifier , number_literal , identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25);" (assignment_expression "iVar12 = (**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25)" identifier = (call_expression "(**(code **)(pcVar36 + 0x339d4c))(uVar6,0,uVar31,uVar5,1,piVar25)" (parenthesized_expression "(**(code **)(pcVar36 + 0x339d4c))" ( (pointer_expression "**(code **)(pcVar36 + 0x339d4c)" * (pointer_expression "*(code **)(pcVar36 + 0x339d4c)" * (cast_expression "(code **)(pcVar36 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339d4c)" ( (binary_expression "pcVar36 + 0x339d4c" identifier + number_literal) ))))) )) (argument_list "(uVar6,0,uVar31,uVar5,1,piVar25)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if ((pfVar11 == (float *)0x0) || (iVar12 == 0)) {\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }" if (parenthesized_expression "((pfVar11 == (float *)0x0) || (iVar12 == 0))" ( (binary_expression "(pfVar11 == (float *)0x0) || (iVar12 == 0)" (parenthesized_expression "(pfVar11 == (float *)0x0)" ( (binary_expression "pfVar11 == (float *)0x0" identifier == (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        MVar3 = MagickFalse;\n        goto LAB_0006fc88;\n      }" { (expression_statement "MVar3 = MagickFalse;" (assignment_expression "MVar3 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_0006fc88;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar5) {\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }" if (parenthesized_expression "(0 < (int)uVar5)" ( (binary_expression "0 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar30 = 0;\n        piVar32 = *(int **)(iVar8 + 0x2d0);\n        dVar43 = *(double *)(iStack_1b0 + 0x1440);\n        iVar34 = piVar32[0x13];\n        dVar46 = *(double *)(iVar9 + 0x1438);\n        fVar42 = *(float *)(iVar14 + 0x3708);\n        do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);\n      }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "piVar32 = *(int **)(iVar8 + 0x2d0);" (assignment_expression "piVar32 = *(int **)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar8 + 0x2d0)" * (cast_expression "(int **)(iVar8 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar43 = *(double *)(iStack_1b0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" * (cast_expression "(double *)(iStack_1b0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b0 + 0x1440)" ( (binary_expression "iStack_1b0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = piVar32[0x13];" (assignment_expression "iVar34 = piVar32[0x13]" identifier = (subscript_expression "piVar32[0x13]" identifier [ number_literal ])) ;) (expression_statement "dVar46 = *(double *)(iVar9 + 0x1438);" (assignment_expression "dVar46 = *(double *)(iVar9 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar9 + 0x1438)" * (cast_expression "(double *)(iVar9 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1438)" ( (binary_expression "iVar9 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar42 = *(float *)(iVar14 + 0x3708);" (assignment_expression "fVar42 = *(float *)(iVar14 + 0x3708)" identifier = (pointer_expression "*(float *)(iVar14 + 0x3708)" * (cast_expression "(float *)(iVar14 + 0x3708)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x3708)" ( (binary_expression "iVar14 + 0x3708" identifier + number_literal) ))))) ;) (do_statement "do {\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        } while (uVar30 != uVar5);" do (compound_statement "{\n          while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }\n          dVar39 = dVar46;\n          if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }\n          dVar41 = dVar40;\n          if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }\n          iVar29 = *(int *)(iVar8 + 0x2c0);\n          if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }\n          uVar30 = uVar30 + 1;\n          pfVar11 = pfVar11 + iVar29;\n          iVar12 = iVar12 + piVar33[0xb0] * 4;\n        }" { (while_statement "while (((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))) {\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }" while (parenthesized_expression "(((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48)))))" ( (parenthesized_expression "((iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))))" ( (binary_expression "(iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)) ||\n                 ((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48)))" (parenthesized_expression "(iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42))" ( (binary_expression "iVar34 != 0 && (pfVar11[piVar32[0x14]] <= fVar42)" (binary_expression "iVar34 != 0" identifier != number_literal) && (parenthesized_expression "(pfVar11[piVar32[0x14]] <= fVar42)" ( (binary_expression "pfVar11[piVar32[0x14]] <= fVar42" (subscript_expression "pfVar11[piVar32[0x14]]" identifier [ (subscript_expression "piVar32[0x14]" identifier [ number_literal ]) ]) <= identifier) ))) )) || (parenthesized_expression "((iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48)))" ( (parenthesized_expression "(iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48))" ( (comma_expression "iVar26 = piVar33[0xb4], *(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48)" (assignment_expression "iVar26 = piVar33[0xb4]" identifier = (subscript_expression "piVar33[0xb4]" identifier [ number_literal ])) , (binary_expression "*(int *)(iVar26 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48)" (binary_expression "*(int *)(iVar26 + 0x4c) != 0" (pointer_expression "*(int *)(iVar26 + 0x4c)" * (cast_expression "(int *)(iVar26 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4c)" ( (binary_expression "iVar26 + 0x4c" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "(*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48)" ( (binary_expression "*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4) <= (float)uVar48" (pointer_expression "*(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4)" * (cast_expression "(float *)(iVar12 + *(int *)(iVar26 + 0x50) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar26 + 0x50) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar26 + 0x50) * 4" identifier + (binary_expression "*(int *)(iVar26 + 0x50) * 4" (pointer_expression "*(int *)(iVar26 + 0x50)" * (cast_expression "(int *)(iVar26 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x50)" ( (binary_expression "iVar26 + 0x50" identifier + number_literal) )))) * number_literal)) )))) <= (cast_expression "(float)uVar48" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) ))) )) )) (compound_statement "{\n            uVar30 = uVar30 + 1;\n            pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);\n            iVar12 = iVar12 + piVar33[0xb0] * 4;\n            if (uVar30 == uVar5) goto LAB_0006fc4c;\n          }" { (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0);" (assignment_expression "pfVar11 = pfVar11 + *(int *)(iVar8 + 0x2c0)" identifier = (binary_expression "pfVar11 + *(int *)(iVar8 + 0x2c0)" identifier + (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = iVar12 + piVar33[0xb0] * 4;" (assignment_expression "iVar12 = iVar12 + piVar33[0xb0] * 4" identifier = (binary_expression "iVar12 + piVar33[0xb0] * 4" identifier + (binary_expression "piVar33[0xb0] * 4" (subscript_expression "piVar33[0xb0]" identifier [ number_literal ]) * number_literal))) ;) (if_statement "if (uVar30 == uVar5) goto LAB_0006fc4c;" if (parenthesized_expression "(uVar30 == uVar5)" ( (binary_expression "uVar30 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_0006fc4c;" goto statement_identifier ;)) })) (expression_statement "dVar39 = dVar46;" (assignment_expression "dVar39 = dVar46" identifier = identifier) ;) (if_statement "if (piVar32[0xd] != 0) {\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }" if (parenthesized_expression "(piVar32[0xd] != 0)" ( (binary_expression "piVar32[0xd] != 0" (subscript_expression "piVar32[0xd]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;\n          }" { (expression_statement "dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43;" (assignment_expression "dVar39 = (double)pfVar11[piVar32[0xe]] * dVar43" identifier = (binary_expression "(double)pfVar11[piVar32[0xe]] * dVar43" (cast_expression "(double)pfVar11[piVar32[0xe]]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pfVar11[piVar32[0xe]]" identifier [ (subscript_expression "piVar32[0xe]" identifier [ number_literal ]) ])) * identifier)) ;) })) (expression_statement "dVar41 = dVar40;" (assignment_expression "dVar41 = dVar40" identifier = identifier) ;) (if_statement "if (*(int *)(iVar26 + 0x34) != 0) {\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }" if (parenthesized_expression "(*(int *)(iVar26 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar26 + 0x34) != 0" (pointer_expression "*(int *)(iVar26 + 0x34)" * (cast_expression "(int *)(iVar26 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x34)" ( (binary_expression "iVar26 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;\n          }" { (expression_statement "dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43;" (assignment_expression "dVar41 = (double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43" identifier = (binary_expression "(double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4) * dVar43" (cast_expression "(double)*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4)" * (cast_expression "(float *)(iVar12 + *(int *)(iVar26 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar26 + 0x38) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar26 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar26 + 0x38) * 4" (pointer_expression "*(int *)(iVar26 + 0x38)" * (cast_expression "(int *)(iVar26 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x38)" ( (binary_expression "iVar26 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) })) (expression_statement "iVar29 = *(int *)(iVar8 + 0x2c0);" (assignment_expression "iVar29 = *(int *)(iVar8 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar29) {\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n            pdVar19 = pdVar20;\n            piVar13 = piVar32;\n            pfVar22 = pfVar11;\n            do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);\n          }" { (expression_statement "pdVar19 = pdVar20;" (assignment_expression "pdVar19 = pdVar20" identifier = identifier) ;) (expression_statement "piVar13 = piVar32;" (assignment_expression "piVar13 = piVar32" identifier = identifier) ;) (expression_statement "pfVar22 = pfVar11;" (assignment_expression "pfVar22 = pfVar11" identifier = identifier) ;) (do_statement "do {\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            } while (pdVar19 != pdVar20 + iVar29);" do (compound_statement "{\n              iVar27 = *piVar13;\n              iVar15 = iVar26 + iVar27 * 0xc;\n              if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }\n              pdVar19 = pdVar19 + 1;\n              piVar13 = piVar13 + 3;\n              pfVar22 = pfVar22 + 1;\n            }" { (expression_statement "iVar27 = *piVar13;" (assignment_expression "iVar27 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "iVar15 = iVar26 + iVar27 * 0xc;" (assignment_expression "iVar15 = iVar26 + iVar27 * 0xc" identifier = (binary_expression "iVar26 + iVar27 * 0xc" identifier + (binary_expression "iVar27 * 0xc" identifier * number_literal))) ;) (if_statement "if (((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)) {\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }" if (parenthesized_expression "(((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0))" ( (binary_expression "((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))\n                 && ((uVar28 & 2) != 0)" (parenthesized_expression "((piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0))" ( (binary_expression "(piVar32[iVar27 * 3 + 1] != 0) && (uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0)" (parenthesized_expression "(piVar32[iVar27 * 3 + 1] != 0)" ( (binary_expression "piVar32[iVar27 * 3 + 1] != 0" (subscript_expression "piVar32[iVar27 * 3 + 1]" identifier [ (binary_expression "iVar27 * 3 + 1" (binary_expression "iVar27 * 3" identifier * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0)" ( (comma_expression "uVar28 = *(uint *)(iVar15 + 4), uVar28 != 0" (assignment_expression "uVar28 = *(uint *)(iVar15 + 4)" identifier = (pointer_expression "*(uint *)(iVar15 + 4)" * (cast_expression "(uint *)(iVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) ))))) , (binary_expression "uVar28 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "((uVar28 & 2) != 0)" ( (binary_expression "(uVar28 & 2) != 0" (parenthesized_expression "(uVar28 & 2)" ( (binary_expression "uVar28 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);\n                if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }\n                dVar38 = dVar38 + dVar50;\n                dVar45 = ABS(dVar44);\n                dVar49 = dVar45 * dVar45 + dVar49;\n                *pdVar19 = *pdVar19 + dVar45;\n                pdVar20[0x40] = pdVar20[0x40] + dVar45;\n                if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }\n              }" { (expression_statement "dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4);" (assignment_expression "dVar44 = (double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar12 + *(int *)(iVar15 + 8) * 4)" * (cast_expression "(float *)(iVar12 + *(int *)(iVar15 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar15 + 8) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar15 + 8) * 4" identifier + (binary_expression "*(int *)(iVar15 + 8) * 4" (pointer_expression "*(int *)(iVar15 + 8)" * (cast_expression "(int *)(iVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (iVar27 == 4) {\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }\n                else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }" if (parenthesized_expression "(iVar27 == 4)" ( (binary_expression "iVar27 == 4" identifier == number_literal) )) (compound_statement "{\n                  dVar44 = (double)*pfVar22 - dVar44;\n                }" { (expression_statement "dVar44 = (double)*pfVar22 - dVar44;" (assignment_expression "dVar44 = (double)*pfVar22 - dVar44" identifier = (binary_expression "(double)*pfVar22 - dVar44" (cast_expression "(double)*pfVar22" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar22" * identifier)) - identifier)) ;) }) (else_clause "else {\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }" else (compound_statement "{\n                  dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;\n                }" { (expression_statement "dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44;" (assignment_expression "dVar44 = dVar39 * (double)*pfVar22 - dVar41 * dVar44" identifier = (binary_expression "dVar39 * (double)*pfVar22 - dVar41 * dVar44" (binary_expression "dVar39 * (double)*pfVar22" identifier * (cast_expression "(double)*pfVar22" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar22" * identifier))) - (binary_expression "dVar41 * dVar44" identifier * identifier))) ;) }))) (expression_statement "dVar38 = dVar38 + dVar50;" (assignment_expression "dVar38 = dVar38 + dVar50" identifier = (binary_expression "dVar38 + dVar50" identifier + identifier)) ;) (expression_statement "dVar45 = ABS(dVar44);" (assignment_expression "dVar45 = ABS(dVar44)" identifier = (call_expression "ABS(dVar44)" identifier (argument_list "(dVar44)" ( identifier )))) ;) (expression_statement "dVar49 = dVar45 * dVar45 + dVar49;" (assignment_expression "dVar49 = dVar45 * dVar45 + dVar49" identifier = (binary_expression "dVar45 * dVar45 + dVar49" (binary_expression "dVar45 * dVar45" identifier * identifier) + identifier)) ;) (expression_statement "*pdVar19 = *pdVar19 + dVar45;" (assignment_expression "*pdVar19 = *pdVar19 + dVar45" (pointer_expression "*pdVar19" * identifier) = (binary_expression "*pdVar19 + dVar45" (pointer_expression "*pdVar19" * identifier) + identifier)) ;) (expression_statement "pdVar20[0x40] = pdVar20[0x40] + dVar45;" (assignment_expression "pdVar20[0x40] = pdVar20[0x40] + dVar45" (subscript_expression "pdVar20[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar20[0x40] + dVar45" (subscript_expression "pdVar20[0x40]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (dVar47 < dVar45) {\n                  dVar47 = ABS(dVar44);\n                }" if (parenthesized_expression "(dVar47 < dVar45)" ( (binary_expression "dVar47 < dVar45" identifier < identifier) )) (compound_statement "{\n                  dVar47 = ABS(dVar44);\n                }" { (expression_statement "dVar47 = ABS(dVar44);" (assignment_expression "dVar47 = ABS(dVar44)" identifier = (call_expression "ABS(dVar44)" identifier (argument_list "(dVar44)" ( identifier )))) ;) })) })) (expression_statement "pdVar19 = pdVar19 + 1;" (assignment_expression "pdVar19 = pdVar19 + 1" identifier = (binary_expression "pdVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar13 + 3;" (assignment_expression "piVar13 = piVar13 + 3" identifier = (binary_expression "piVar13 + 3" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 1;" (assignment_expression "pfVar22 = pfVar22 + 1" identifier = (binary_expression "pfVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar19 != pdVar20 + iVar29)" ( (binary_expression "pdVar19 != pdVar20 + iVar29" identifier != (binary_expression "pdVar20 + iVar29" identifier + identifier)) )) ;) })) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "pfVar11 = pfVar11 + iVar29;" (assignment_expression "pfVar11 = pfVar11 + iVar29" identifier = (binary_expression "pfVar11 + iVar29" identifier + identifier)) ;) (expression_statement "iVar12 = iVar12 + piVar33[0xb0] * 4;" (assignment_expression "iVar12 = iVar12 + piVar33[0xb0] * 4" identifier = (binary_expression "iVar12 + piVar33[0xb0] * 4" identifier + (binary_expression "piVar33[0xb0] * 4" (subscript_expression "piVar33[0xb0]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(uVar30 != uVar5)" ( (binary_expression "uVar30 != uVar5" identifier != identifier) )) ;) })) (labeled_statement "LAB_0006fc4c:\n      uVar31 = uVar31 + 1;" statement_identifier : (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x339d4c);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x339d4c)" * (cast_expression "(code **)(pcVar36 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x339d4c)" ( (binary_expression "pcVar36 + 0x339d4c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar31 != uVar21)" ( (binary_expression "uVar31 != uVar21" identifier != identifier) )) ;) (expression_statement "MVar3 = MagickTrue;" (assignment_expression "MVar3 = MagickTrue" identifier = identifier) ;) }))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar36 + 0x3395e4))(uVar6);" statement_identifier : (expression_statement "(**(code **)(pcVar36 + 0x3395e4))(uVar6);" (call_expression "(**(code **)(pcVar36 + 0x3395e4))(uVar6)" (parenthesized_expression "(**(code **)(pcVar36 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar36 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar36 + 0x3395e4)" * (cast_expression "(code **)(pcVar36 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x3395e4)" ( (binary_expression "pcVar36 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar36 + 0x3395e4))(uVar18);" (call_expression "(**(code **)(pcVar36 + 0x3395e4))(uVar18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar36 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar36 + 0x3395e4)" * (cast_expression "(code **)(pcVar36 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x3395e4)" ( (binary_expression "pcVar36 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier ))) ;) (expression_statement "dVar40 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1b0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" * (cast_expression "(double *)(iStack_1b0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b0 + 0x1440)" ( (binary_expression "iStack_1b0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = *(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700);" (assignment_expression "dVar50 = *(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700)" * (cast_expression "(double *)(*(int *)(pcVar36 + 0x338fd0) + 0x3700)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x338fd0) + 0x3700)" ( (binary_expression "*(int *)(pcVar36 + 0x338fd0) + 0x3700" (pointer_expression "*(int *)(pcVar36 + 0x338fd0)" * (cast_expression "(int *)(pcVar36 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x338fd0)" ( (binary_expression "pcVar36 + 0x338fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(double *)(iVar8 + 0x2d8) = pdVar20[0x40] / dVar38;" (assignment_expression "*(double *)(iVar8 + 0x2d8) = pdVar20[0x40] / dVar38" (pointer_expression "*(double *)(iVar8 + 0x2d8)" * (cast_expression "(double *)(iVar8 + 0x2d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2d8)" ( (binary_expression "iVar8 + 0x2d8" identifier + number_literal) )))) = (binary_expression "pdVar20[0x40] / dVar38" (subscript_expression "pdVar20[0x40]" identifier [ number_literal ]) / identifier)) ;) (expression_statement "*(double *)(iVar8 + 0x2e8) = dVar47 * dVar40;" (assignment_expression "*(double *)(iVar8 + 0x2e8) = dVar47 * dVar40" (pointer_expression "*(double *)(iVar8 + 0x2e8)" * (cast_expression "(double *)(iVar8 + 0x2e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2e8)" ( (binary_expression "iVar8 + 0x2e8" identifier + number_literal) )))) = (binary_expression "dVar47 * dVar40" identifier * identifier)) ;) (expression_statement "*(double *)(iVar8 + 0x2e0) = (dVar49 * dVar50) / dVar38;" (assignment_expression "*(double *)(iVar8 + 0x2e0) = (dVar49 * dVar50) / dVar38" (pointer_expression "*(double *)(iVar8 + 0x2e0)" * (cast_expression "(double *)(iVar8 + 0x2e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2e0)" ( (binary_expression "iVar8 + 0x2e0" identifier + number_literal) )))) = (binary_expression "(dVar49 * dVar50) / dVar38" (parenthesized_expression "(dVar49 * dVar50)" ( (binary_expression "dVar49 * dVar50" identifier * identifier) )) / identifier)) ;) (return_statement "return MVar3;" return identifier ;) })))
(translation_unit "int TransformImageColorspace(int param_1,int param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}\n\n" (function_definition "int TransformImageColorspace(int param_1,int param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}" primitive_type (function_declarator "TransformImageColorspace(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "float *pfVar8;" primitive_type (pointer_declarator "*pfVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "double *extraout_v1_00;" primitive_type (pointer_declarator "*extraout_v1_00" * identifier) ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "int extraout_v1_04;" primitive_type identifier ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "float *pfVar19;" primitive_type (pointer_declarator "*pfVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "float fVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "ulonglong uVar45;" type_identifier identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "undefined8 uVar48;" type_identifier identifier ;) (declaration "int iStack_1b0;" primitive_type identifier ;) (declaration "double dStack_128;" primitive_type identifier ;) (declaration "int iStack_120;" primitive_type identifier ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "double *pdStack_114;" primitive_type (pointer_declarator "*pdStack_114" * identifier) ;) (declaration "double *pdStack_110;" primitive_type (pointer_declarator "*pdStack_110" * identifier) ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "uint uStack_fc;" type_identifier identifier ;) (declaration "uint uStack_f8;" type_identifier identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "undefined *puStack_e4;" type_identifier (pointer_declarator "*puStack_e4" * identifier) ;) (declaration "uint uStack_e0;" type_identifier identifier ;) (declaration "undefined *puStack_dc;" type_identifier (pointer_declarator "*puStack_dc" * identifier) ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "undefined4 uStack_cc;" type_identifier identifier ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "undefined *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "double *pdStack_a4;" primitive_type (pointer_declarator "*pdStack_a4" * identifier) ;) (declaration "double dStack_a0;" primitive_type identifier ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "uint uStack_80;" type_identifier identifier ;) (declaration "uint uStack_7c;" type_identifier identifier ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "int iStack_68;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" ( (binary_expression "PTR_LAB_003a88e0 + 0xdd0" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal) , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier + number_literal) ))) ;) }) (else_clause "else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" { (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" * (cast_expression "(int *)(param_1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x336c)" ( (binary_expression "param_1 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }" { (if_statement "if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x3350) == 0)" ( (binary_expression "*(int *)(param_1 + 0x3350) == 0" (pointer_expression "*(int *)(param_1 + 0x3350)" * (cast_expression "(int *)(param_1 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3350)" ( (binary_expression "param_1 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(param_1 + 4);\n      }" { (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" else (compound_statement "{\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" ( number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal) , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }" if (parenthesized_expression "(iVar2 == param_2)" ( (binary_expression "iVar2 == param_2" identifier == identifier) )) (compound_statement "{\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);" (assignment_expression "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3)" identifier = (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" ( (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" * (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" ( (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" * (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" ( (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" * (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c" identifier + number_literal) ))) ;) (if_statement "if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);" (assignment_expression "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3)" identifier = (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" ( (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" * (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0,param_3)" ( identifier , number_literal , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" if (parenthesized_expression "(1 < param_2 - 0x17U)" ( (binary_expression "1 < param_2 - 0x17U" number_literal < (binary_expression "param_2 - 0x17U" identifier - number_literal)) )) (compound_statement "{\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" { (if_statement "if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(param_1 + 4) - 0x17U < 2)" ( (binary_expression "*(int *)(param_1 + 4) - 0x17U < 2" (binary_expression "*(int *)(param_1 + 4) - 0x17U" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n          iVar2 = 1;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" { (expression_statement "iVar2 = FUN_0006b9c8(param_1,param_3);" (assignment_expression "iVar2 = FUN_0006b9c8(param_1,param_3)" identifier = (call_expression "FUN_0006b9c8(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "iVar3 = FUN_0006d178(param_1,param_2,param_3);" (assignment_expression "iVar3 = FUN_0006d178(param_1,param_2,param_3)" identifier = (call_expression "FUN_0006d178(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar2 = FUN_0006b9c8(param_1,param_3);" (assignment_expression "iVar2 = FUN_0006b9c8(param_1,param_3)" identifier = (call_expression "FUN_0006b9c8(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "uVar15 = 0x5e6;" (assignment_expression "uVar15 = 0x5e6" identifier = number_literal) ;) (expression_statement "puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;" (assignment_expression "puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" identifier + number_literal)) ;) (expression_statement "puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" identifier + number_literal)) ;) (expression_statement "puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;" (assignment_expression "puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier + number_literal)) ;) (expression_statement "puVar32 = PTR___assert_fail_003a9608;" (assignment_expression "puVar32 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)();" (call_expression "(*(code *)PTR___assert_fail_003a9608)()" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_b0 = puVar32 + 0x3416c0;" (assignment_expression "puStack_b0 = puVar32 + 0x3416c0" identifier = (binary_expression "puVar32 + 0x3416c0" identifier + number_literal)) ;) (expression_statement "dVar35 = *(double *)(puVar14 + 0x248);" (assignment_expression "dVar35 = *(double *)(puVar14 + 0x248)" identifier = (pointer_expression "*(double *)(puVar14 + 0x248)" * (cast_expression "(double *)(puVar14 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x248)" ( (binary_expression "puVar14 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(puVar13 + 0x248);" (assignment_expression "dVar44 = *(double *)(puVar13 + 0x248)" identifier = (pointer_expression "*(double *)(puVar13 + 0x248)" * (cast_expression "(double *)(puVar13 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x248)" ( (binary_expression "puVar13 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = *(int **)(puVar32 + 0x33a040);" (assignment_expression "piVar30 = *(int **)(puVar32 + 0x33a040)" identifier = (pointer_expression "*(int **)(puVar32 + 0x33a040)" * (cast_expression "(int **)(puVar32 + 0x33a040)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a040)" ( (binary_expression "puVar32 + 0x33a040" identifier + number_literal) ))))) ;) (expression_statement "iStack_6c = *piVar30;" (assignment_expression "iStack_6c = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (if_statement "if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" if (parenthesized_expression "(dVar35 < dVar44)" ( (binary_expression "dVar35 < dVar44" identifier < identifier) )) (compound_statement "{\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }" { (expression_statement "iVar2 = *(int *)(puVar32 + 0x3396f8);" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x3396f8)" identifier = (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" if (parenthesized_expression "(dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8))" ( (binary_expression "dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" identifier <= (pointer_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(puVar32 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) )))) + number_literal) ))))) )) (goto_statement "goto LAB_0006f270;" goto statement_identifier ;)) (labeled_statement "LAB_0006f470:\n    dVar44 = dVar44 * dVar44;" statement_identifier : (expression_statement "dVar44 = dVar44 * dVar44;" (assignment_expression "dVar44 = dVar44 * dVar44" identifier = (binary_expression "dVar44 * dVar44" identifier * identifier)) ;)) }) (else_clause "else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" else (compound_statement "{\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" { (expression_statement "iVar2 = *(int *)(puVar32 + 0x3396f8);" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x3396f8)" identifier = (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" if (parenthesized_expression "(*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35)" ( (binary_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35" (pointer_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(puVar32 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar32 + 0x3396f8)" * (cast_expression "(int *)(puVar32 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x3396f8)" ( (binary_expression "puVar32 + 0x3396f8" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }" { (if_statement "if (dVar35 < dVar44) goto LAB_0006f470;" if (parenthesized_expression "(dVar35 < dVar44)" ( (binary_expression "dVar35 < dVar44" identifier < identifier) )) (goto_statement "goto LAB_0006f470;" goto statement_identifier ;)) (expression_statement "dVar44 = dVar35 * dVar35;" (assignment_expression "dVar44 = dVar35 * dVar35" identifier = (binary_expression "dVar35 * dVar35" identifier * identifier)) ;) }) (else_clause "else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" else (compound_statement "{\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" { (labeled_statement "LAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);" statement_identifier : (expression_statement "dVar44 = *(double *)(iVar2 + -0x5ad0);" (assignment_expression "dVar44 = *(double *)(iVar2 + -0x5ad0)" identifier = (pointer_expression "*(double *)(iVar2 + -0x5ad0)" * (cast_expression "(double *)(iVar2 + -0x5ad0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x5ad0)" ( (binary_expression "iVar2 + -0x5ad0" identifier + number_literal) ))))) ;)) }))) }))) (expression_statement "uVar18 = *(uint *)(puVar13 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(puVar13 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar13 + 0x1c)" * (cast_expression "(uint *)(puVar13 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c))" ( (binary_expression "*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)" (pointer_expression "*(uint *)(puVar13 + 0x1c)" * (cast_expression "(uint *)(puVar13 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar14 + 0x1c)" * (cast_expression "(uint *)(puVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1c)" ( (binary_expression "puVar14 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }" { (expression_statement "uVar18 = *(uint *)(puVar14 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(puVar14 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar14 + 0x1c)" * (cast_expression "(uint *)(puVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1c)" ( (binary_expression "puVar14 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar4 = *(uint *)(puVar13 + 0x18);" (assignment_expression "uVar4 = *(uint *)(puVar13 + 0x18)" identifier = (pointer_expression "*(uint *)(puVar13 + 0x18)" * (cast_expression "(uint *)(puVar13 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18))" ( (binary_expression "*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)" (pointer_expression "*(uint *)(puVar13 + 0x18)" * (cast_expression "(uint *)(puVar13 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar14 + 0x18)" * (cast_expression "(uint *)(puVar14 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x18)" ( (binary_expression "puVar14 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }" { (expression_statement "uVar4 = *(uint *)(puVar14 + 0x18);" (assignment_expression "uVar4 = *(uint *)(puVar14 + 0x18)" identifier = (pointer_expression "*(uint *)(puVar14 + 0x18)" * (cast_expression "(uint *)(puVar14 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x18)" ( (binary_expression "puVar14 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iStack_68 = unaff_s0;" (assignment_expression "iStack_68 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);" (assignment_expression "uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20)" identifier = (call_expression "(**(code **)(puVar32 + 0x33a564))(puVar13,puVar20)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a564))" ( (pointer_expression "**(code **)(puVar32 + 0x33a564)" * (pointer_expression "*(code **)(puVar32 + 0x33a564)" * (cast_expression "(code **)(puVar32 + 0x33a564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a564)" ( (binary_expression "puVar32 + 0x33a564" identifier + number_literal) ))))) )) (argument_list "(puVar13,puVar20)" ( identifier , identifier )))) ;) (expression_statement "uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);" (assignment_expression "uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x715c))" ( (pointer_expression "**(code **)(puStack_b0 + -0x715c)" * (pointer_expression "*(code **)(puStack_b0 + -0x715c)" * (cast_expression "(code **)(puStack_b0 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x715c)" ( (binary_expression "puStack_b0 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(puVar14,puVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))" ( (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" * (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" * (cast_expression "(code **)(puStack_b0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x73fc)" ( (binary_expression "puStack_b0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar28 = uVar18;" (assignment_expression "uVar28 = uVar18" identifier = identifier) ;) (if_statement "if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar18 < 0)" ( (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar28 = uVar18 + 0x3f;\n    }" { (expression_statement "uVar28 = uVar18 + 0x3f;" (assignment_expression "uVar28 = uVar18 + 0x3f" identifier = (binary_expression "uVar18 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar16 = (double *)((int)uVar28 >> 6);" (assignment_expression "pdVar16 = (double *)((int)uVar28 >> 6)" identifier = (cast_expression "(double *)((int)uVar28 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)uVar28 >> 6)" ( (binary_expression "(int)uVar28 >> 6" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < (int)pdVar16)" ( (binary_expression "extraout_v1 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }" { (expression_statement "pdStack_a4 = pdVar16;" (assignment_expression "pdStack_a4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_02 < 2;" (assignment_expression "bVar1 = extraout_v1_02 < 2" identifier = (binary_expression "extraout_v1_02 < 2" identifier < number_literal)) ;) (expression_statement "pdVar16 = pdStack_a4;" (assignment_expression "pdVar16 = pdStack_a4" identifier = identifier) ;) }) (else_clause "else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar18 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar18 < 0x80;" (assignment_expression "bVar1 = (int)uVar18 < 0x80" identifier = (binary_expression "(int)uVar18 < 0x80" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" { (expression_statement "pdStack_a4 = pdVar16;" (assignment_expression "pdStack_a4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar16 = pdStack_a4;" (assignment_expression "pdVar16 = pdStack_a4" identifier = identifier) ;) (if_statement "if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" if (parenthesized_expression "(extraout_v1_01 < (int)pdStack_a4)" ( (binary_expression "extraout_v1_01 < (int)pdStack_a4" identifier < (cast_expression "(int)pdStack_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" { (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f4b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      pdVar16 = (double *)0x1;\n    }" else (compound_statement "{\n      pdVar16 = (double *)0x1;\n    }" { (expression_statement "pdVar16 = (double *)0x1;" (assignment_expression "pdVar16 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" { (expression_statement "uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);" (assignment_expression "uVar48 = (**(code **)(puStack_b0 + -0x7774))(7)" identifier = (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7774)" * (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" { (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" { (expression_statement "uVar48 = (*pcVar33)(7);" (assignment_expression "uVar48 = (*pcVar33)(7)" identifier = (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f310;" goto statement_identifier ;)) (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }" { (expression_statement "pdVar16 = (double *)0x1;" (assignment_expression "pdVar16 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0006f328;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" else (compound_statement "{\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" { (labeled_statement "LAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);" statement_identifier : (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar48 = (*pcVar33)(7);" (assignment_expression "uVar48 = (*pcVar33)(7)" identifier = (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2))" ( (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)" (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)" ( (comma_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x7774)" * (cast_expression "(code **)(puStack_b0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7774)" ( (binary_expression "puStack_b0 + -0x7774" identifier + number_literal) ))))) , (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }" { (labeled_statement "LAB_0006f4b4:\n      (*pcVar33)(7);" statement_identifier : (expression_statement "(*pcVar33)(7);" (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "pdVar16 = extraout_v1_00;" (assignment_expression "pdVar16 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      pdVar16 = (double *)0x2;\n    }" else (compound_statement "{\n      pdVar16 = (double *)0x2;\n    }" { (expression_statement "pdVar16 = (double *)0x2;" (assignment_expression "pdVar16 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006f328:\n  uVar21 = 0;" statement_identifier : (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;)) (expression_statement "pdVar17 = &dStack_a0;" (assignment_expression "pdVar17 = &dStack_a0" identifier = (pointer_expression "&dStack_a0" & identifier)) ;) (expression_statement "iStack_78 = 1;" (assignment_expression "iStack_78 = 1" identifier = number_literal) ;) (expression_statement "dStack_a0 = dVar44;" (assignment_expression "dStack_a0 = dVar44" identifier = identifier) ;) (expression_statement "puStack_98 = puVar13;" (assignment_expression "puStack_98 = puVar13" identifier = identifier) ;) (expression_statement "puStack_94 = puVar14;" (assignment_expression "puStack_94 = puVar14" identifier = identifier) ;) (expression_statement "uStack_90 = uVar15;" (assignment_expression "uStack_90 = uVar15" identifier = identifier) ;) (expression_statement "puStack_8c = puVar20;" (assignment_expression "puStack_8c = puVar20" identifier = identifier) ;) (expression_statement "uStack_88 = uVar5;" (assignment_expression "uStack_88 = uVar5" identifier = identifier) ;) (expression_statement "uStack_84 = uVar6;" (assignment_expression "uStack_84 = uVar6" identifier = identifier) ;) (expression_statement "uStack_80 = uVar4;" (assignment_expression "uStack_80 = uVar4" identifier = identifier) ;) (expression_statement "uStack_7c = uVar18;" (assignment_expression "uStack_7c = uVar18" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7718))" ( (pointer_expression "**(code **)(puStack_b0 + -0x7718)" * (pointer_expression "*(code **)(puStack_b0 + -0x7718)" * (cast_expression "(code **)(puStack_b0 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x7718)" ( (binary_expression "puStack_b0 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" ( (binary_expression "*(int *)(puStack_b0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(puStack_b0 + -0x7f78)" * (cast_expression "(int *)(puStack_b0 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_b0 + -0x7f78)" ( (binary_expression "puStack_b0 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = iStack_78;" (assignment_expression "iVar2 = iStack_78" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" * (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" * (cast_expression "(code **)(puStack_b0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x79bc)" ( (binary_expression "puStack_b0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar5);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" * (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" * (cast_expression "(code **)(puStack_b0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x79bc)" ( (binary_expression "puStack_b0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iStack_6c == *piVar30) {\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_6c == *piVar30)" ( (binary_expression "iStack_6c == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x784c);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_b0 + -0x784c)" * (cast_expression "(code **)(puStack_b0 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_b0 + -0x784c)" ( (binary_expression "puStack_b0 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = FUN_0006f518;" (assignment_expression "pcVar34 = FUN_0006f518" identifier = identifier) ;) (expression_statement "iVar3 = iStack_6c;" (assignment_expression "iVar3 = iStack_6c" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar29 = *(int **)(pcVar33 + 0x339d18);" (assignment_expression "piVar29 = *(int **)(pcVar33 + 0x339d18)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x339d18)" * (cast_expression "(int **)(pcVar33 + 0x339d18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d18)" ( (binary_expression "pcVar33 + 0x339d18" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = *(uint *)(iVar3 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar3 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c))" ( (binary_expression "*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)((int)pdVar17 + 0x1c)" * (cast_expression "(uint *)((int)pdVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + 0x1c)" ( (binary_expression "(int)pdVar17 + 0x1c" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" { (expression_statement "uVar28 = *(uint *)((int)pdVar17 + 0x1c);" (assignment_expression "uVar28 = *(uint *)((int)pdVar17 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pdVar17 + 0x1c)" * (cast_expression "(uint *)((int)pdVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + 0x1c)" ( (binary_expression "(int)pdVar17 + 0x1c" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "uVar27 = *(uint *)(iVar3 + 0x18);" (assignment_expression "uVar27 = *(uint *)(iVar3 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3))" ( (binary_expression "*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)" (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(pdVar17 + 3)" * (cast_expression "(uint *)(pdVar17 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar17 + 3)" ( (binary_expression "pdVar17 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" { (expression_statement "uVar27 = *(uint *)(pdVar17 + 3);" (assignment_expression "uVar27 = *(uint *)(pdVar17 + 3)" identifier = (pointer_expression "*(uint *)(pdVar17 + 3)" * (cast_expression "(uint *)(pdVar17 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar17 + 3)" ( (binary_expression "pdVar17 + 3" identifier + number_literal) ))))) ;) })) (expression_statement "iStack_e8 = iVar2;" (assignment_expression "iStack_e8 = iVar2" identifier = identifier) ;) (expression_statement "iStack_ec = *piVar29;" (assignment_expression "iStack_ec = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "puStack_e4 = puVar14;" (assignment_expression "puStack_e4 = puVar14" identifier = identifier) ;) (expression_statement "uStack_e0 = uVar18;" (assignment_expression "uStack_e0 = uVar18" identifier = identifier) ;) (expression_statement "puStack_dc = puVar20;" (assignment_expression "puStack_dc = puVar20" identifier = identifier) ;) (expression_statement "uStack_d8 = uVar4;" (assignment_expression "uStack_d8 = uVar4" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar30;" (assignment_expression "piStack_d4 = piVar30" identifier = identifier) ;) (expression_statement "uStack_d0 = uVar15;" (assignment_expression "uStack_d0 = uVar15" identifier = identifier) ;) (expression_statement "uStack_cc = uVar5;" (assignment_expression "uStack_cc = uVar5" identifier = identifier) ;) (expression_statement "uStack_c8 = uVar6;" (assignment_expression "uStack_c8 = uVar6" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar34;" (assignment_expression "pcStack_c4 = pcVar34" identifier = identifier) ;) (expression_statement "uVar15 = (**(code **)(pcVar33 + 0x33a23c))();" (assignment_expression "uVar15 = (**(code **)(pcVar33 + 0x33a23c))()" identifier = (call_expression "(**(code **)(pcVar33 + 0x33a23c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar33 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar33 + 0x33a23c)" * (cast_expression "(code **)(pcVar33 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a23c)" ( (binary_expression "pcVar33 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);" (assignment_expression "uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" identifier = (call_expression "(**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar33 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar33 + 0x33a23c)" * (cast_expression "(code **)(pcVar33 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a23c)" ( (binary_expression "pcVar33 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "(pdVar17,uVar21)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" * (cast_expression "(code **)(pcVar33 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339f9c)" ( (binary_expression "pcVar33 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }" { (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar18 = uVar28;" (assignment_expression "uVar18 = uVar28" identifier = identifier) ;) (if_statement "if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar28 < 0)" ( (binary_expression "(int)uVar28 < 0" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = uVar28 + 0x3f;\n    }" { (expression_statement "uVar18 = uVar28 + 0x3f;" (assignment_expression "uVar18 = uVar28 + 0x3f" identifier = (binary_expression "uVar28 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar2 = (int)uVar18 >> 6;" (assignment_expression "iVar2 = (int)uVar18 >> 6" identifier = (binary_expression "(int)uVar18 >> 6" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < iVar2)" ( (binary_expression "extraout_v1_03 < iVar2" identifier < identifier) )) (compound_statement "{\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" identifier = (binary_expression "extraout_v1_06 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar28 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar28 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar28 < 0x80;" (assignment_expression "bVar1 = (int)uVar28 < 0x80" identifier = (binary_expression "(int)uVar28 < 0x80" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }" { (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" if (parenthesized_expression "(extraout_v1_05 < iVar2)" ( (binary_expression "extraout_v1_05 < iVar2" identifier < identifier) )) (compound_statement "{\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" { (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f8ac;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar2 = 1;\n    }" else (compound_statement "{\n      iVar2 = 1;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" else (compound_statement "{\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" { (expression_statement "uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);" (assignment_expression "uVar48 = (**(code **)(pcVar33 + 0x339c24))(7)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c24)" * (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }" { (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }" { (expression_statement "uVar48 = (*pcVar34)(7);" (assignment_expression "uVar48 = (*pcVar34)(7)" identifier = (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;" if (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f60c;" goto statement_identifier ;)) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }" if (parenthesized_expression "((uint)uVar48 < 2)" ( (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006f624;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" else (compound_statement "{\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" { (labeled_statement "LAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);" statement_identifier : (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar48 = (*pcVar34)(7);" (assignment_expression "uVar48 = (*pcVar34)(7)" identifier = (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2))" ( (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)" (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)" ( (comma_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339c24)" * (cast_expression "(code **)(pcVar33 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c24)" ( (binary_expression "pcVar33 + 0x339c24" identifier + number_literal) ))))) , (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }" { (labeled_statement "LAB_0006f8ac:\n      (*pcVar34)(7);" statement_identifier : (expression_statement "(*pcVar34)(7);" (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar2 = extraout_v1_04;" (assignment_expression "iVar2 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006f624:\n  piVar22 = (int *)0x0;" statement_identifier : (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piVar30 = &iStack_120;" (assignment_expression "piVar30 = &iStack_120" identifier = (pointer_expression "&iStack_120" & identifier)) ;) (expression_statement "iStack_f4 = 1;" (assignment_expression "iStack_f4 = 1" identifier = number_literal) ;) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" identifier = number_literal) ;) (expression_statement "iStack_120 = 0;" (assignment_expression "iStack_120 = 0" identifier = number_literal) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "iStack_118 = iVar3;" (assignment_expression "iStack_118 = iVar3" identifier = identifier) ;) (expression_statement "pdStack_114 = pdVar17;" (assignment_expression "pdStack_114 = pdVar17" identifier = identifier) ;) (expression_statement "pdStack_110 = pdVar16;" (assignment_expression "pdStack_110 = pdVar16" identifier = identifier) ;) (expression_statement "uStack_10c = uVar21;" (assignment_expression "uStack_10c = uVar21" identifier = identifier) ;) (expression_statement "uStack_108 = uVar15;" (assignment_expression "uStack_108 = uVar15" identifier = identifier) ;) (expression_statement "uStack_104 = uVar5;" (assignment_expression "uStack_104 = uVar5" identifier = identifier) ;) (expression_statement "uStack_fc = uVar27;" (assignment_expression "uStack_fc = uVar27" identifier = identifier) ;) (expression_statement "uStack_f8 = uVar28;" (assignment_expression "uStack_f8 = uVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);" (call_expression "(**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c80))" ( (pointer_expression "**(code **)(pcVar33 + 0x339c80)" * (pointer_expression "*(code **)(pcVar33 + 0x339c80)" * (cast_expression "(code **)(pcVar33 + 0x339c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339c80)" ( (binary_expression "pcVar33 + 0x339c80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2)" ( (binary_expression "*(int *)(pcVar33 + 0x339420) + 0x2498" (pointer_expression "*(int *)(pcVar33 + 0x339420)" * (cast_expression "(int *)(pcVar33 + 0x339420)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x339420)" ( (binary_expression "pcVar33 + 0x339420" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar11 = iStack_f4;" (assignment_expression "iVar11 = iStack_f4" identifier = identifier) ;) (expression_statement "uVar6 = uStack_11c;" (assignment_expression "uVar6 = uStack_11c" identifier = identifier) ;) (expression_statement "iVar2 = iStack_120;" (assignment_expression "iVar2 = iStack_120" identifier = identifier) ;) (expression_statement "dVar35 = (double)CONCAT44(iStack_120,uStack_11c);" (assignment_expression "dVar35 = (double)CONCAT44(iStack_120,uStack_11c)" identifier = (cast_expression "(double)CONCAT44(iStack_120,uStack_11c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iStack_120,uStack_11c)" identifier (argument_list "(iStack_120,uStack_11c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar5);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar33 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar33 + 0x3399dc)" * (cast_expression "(code **)(pcVar33 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3399dc)" ( (binary_expression "pcVar33 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar15);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar15)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar33 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar33 + 0x3399dc)" * (cast_expression "(code **)(pcVar33 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3399dc)" ( (binary_expression "pcVar33 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" if (parenthesized_expression "(0.0 <= dVar35)" ( (binary_expression "0.0 <= dVar35" number_literal <= identifier) )) (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_128 = dVar35;" (assignment_expression "dStack_128 = dVar35" identifier = identifier) ;) }) (else_clause "else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" else (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1a78" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_128 = -(double)CONCAT44(iVar2,uVar6);" (assignment_expression "dStack_128 = -(double)CONCAT44(iVar2,uVar6)" identifier = (unary_expression "-(double)CONCAT44(iVar2,uVar6)" - (cast_expression "(double)CONCAT44(iVar2,uVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar2,uVar6)" identifier (argument_list "(iVar2,uVar6)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128)" ( (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35" identifier = (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" else (compound_statement "{\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" { (expression_statement "dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);" (assignment_expression "dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" identifier = (binary_expression "dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar17 = pdVar16;" (assignment_expression "pdVar17 = pdVar16" identifier = identifier) ;) (do_statement "do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);" do (compound_statement "{\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  }" { (expression_statement "pdVar7 = pdVar17 + 1;" (assignment_expression "pdVar7 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar17 = *pdVar17 * dVar44;" (assignment_expression "*pdVar17 = *pdVar17 * dVar44" (pointer_expression "*pdVar17" * identifier) = (binary_expression "*pdVar17 * dVar44" (pointer_expression "*pdVar17" * identifier) * identifier)) ;) (expression_statement "pdVar17 = pdVar7;" (assignment_expression "pdVar17 = pdVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar16 + 0x41 != pdVar7)" ( (binary_expression "pdVar16 + 0x41 != pdVar7" (binary_expression "pdVar16 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "pdVar17 = (double *)0x0;" (assignment_expression "pdVar17 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar3 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar3 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x2c0)" * (cast_expression "(int *)(iVar3 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c0)" ( (binary_expression "iVar3 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" { (expression_statement "piVar22 = *(int **)(iVar3 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar3 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar3 + 0x2d0)" * (cast_expression "(int **)(iVar3 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;" (assignment_expression "piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3" identifier = (binary_expression "piVar22 + *(int *)(iVar3 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar3 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar3 + 0x2c0)" * (cast_expression "(int *)(iVar3 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c0)" ( (binary_expression "iVar3 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar10 = piVar22;" (assignment_expression "piVar10 = piVar22" identifier = identifier) ;) (do_statement "do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);" do (compound_statement "{\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    }" { (if_statement "if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" if (parenthesized_expression "((piVar22[*piVar10 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar22[*piVar10 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar22[*piVar10 * 3 + 1] & 2U)" ( (binary_expression "piVar22[*piVar10 * 3 + 1] & 2U" (subscript_expression "piVar22[*piVar10 * 3 + 1]" identifier [ (binary_expression "*piVar10 * 3 + 1" (binary_expression "*piVar10 * 3" (pointer_expression "*piVar10" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" { (expression_statement "pdVar17 = (double *)((int)pdVar17 + 1);" (assignment_expression "pdVar17 = (double *)((int)pdVar17 + 1)" identifier = (cast_expression "(double *)((int)pdVar17 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + 1)" ( (binary_expression "(int)pdVar17 + 1" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "piVar10 = piVar10 + 3;" (assignment_expression "piVar10 = piVar10 + 3" identifier = (binary_expression "piVar10 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar10 != piVar30)" ( (binary_expression "piVar10 != piVar30" identifier != identifier) )) ;) (if_statement "if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" if (parenthesized_expression "(pdVar17 != (double *)0x0)" ( (binary_expression "pdVar17 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" { (expression_statement "dVar35 = (double)(int)pdVar17;" (assignment_expression "dVar35 = (double)(int)pdVar17" identifier = (cast_expression "(double)(int)pdVar17" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }" if (parenthesized_expression "((int)pdVar17 < 0)" ( (binary_expression "(int)pdVar17 < 0" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }" { (expression_statement "dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);" (assignment_expression "dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" identifier = (binary_expression "dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1418" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_0006f778;" goto statement_identifier ;) })) })) (expression_statement "dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);" (assignment_expression "dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" * (cast_expression "(int *)(pcVar33 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3393c8)" ( (binary_expression "pcVar33 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_0006f778:\n  iVar2 = *piVar29;" statement_identifier : (expression_statement "iVar2 = *piVar29;" (assignment_expression "iVar2 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;)) (expression_statement "pdVar16[0x40] = pdVar16[0x40] / dVar35;" (assignment_expression "pdVar16[0x40] = pdVar16[0x40] / dVar35" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar16[0x40] / dVar35" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (iStack_ec == iVar2) {\n    return iVar11;\n  }" if (parenthesized_expression "(iStack_ec == iVar2)" ( (binary_expression "iStack_ec == iVar2" identifier == identifier) )) (compound_statement "{\n    return iVar11;\n  }" { (return_statement "return iVar11;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x339b4c);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x339b4c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339b4c)" * (cast_expression "(code **)(pcVar33 + 0x339b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339b4c)" ( (binary_expression "pcVar33 + 0x339b4c" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iStack_ec;" (assignment_expression "iVar2 = iStack_ec" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar18 = *(uint *)(iVar2 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x1c)" * (cast_expression "(uint *)(iVar2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7])" ( (binary_expression "*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]" (pointer_expression "*(uint *)(iVar2 + 0x1c)" * (cast_expression "(uint *)(iVar2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar30[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar30[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar18 = piVar30[7];\n  }" { (expression_statement "uVar18 = piVar30[7];" (assignment_expression "uVar18 = piVar30[7]" identifier = (subscript_expression "piVar30[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6])" ( (binary_expression "*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]" (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar30[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar30[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar4 = piVar30[6];\n  }" { (expression_statement "uVar4 = piVar30[6];" (assignment_expression "uVar4 = piVar30[6]" identifier = (subscript_expression "piVar30[6]" identifier [ number_literal ])) ;) })) (expression_statement "uVar15 = (**(code **)(pcVar33 + 0x339e44))();" (assignment_expression "uVar15 = (**(code **)(pcVar33 + 0x339e44))()" identifier = (call_expression "(**(code **)(pcVar33 + 0x339e44))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar33 + 0x339e44)" * (pointer_expression "*(code **)(pcVar33 + 0x339e44)" * (cast_expression "(code **)(pcVar33 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339e44)" ( (binary_expression "pcVar33 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);" (assignment_expression "uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar33 + 0x339e44)" * (pointer_expression "*(code **)(pcVar33 + 0x339e44)" * (cast_expression "(code **)(pcVar33 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339e44)" ( (binary_expression "pcVar33 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "(piVar30,piVar22)" ( identifier , identifier )))) ;) (if_statement "if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" if (parenthesized_expression "((int)uVar18 < 1)" ( (binary_expression "(int)uVar18 < 1" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }" { (expression_statement "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (expression_statement "dVar35 = dVar46;" (assignment_expression "dVar35 = dVar46" identifier = identifier) ;) (expression_statement "dVar44 = dVar46;" (assignment_expression "dVar44 = dVar46" identifier = identifier) ;) }) (else_clause "else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" else (compound_statement "{\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" { (expression_statement "iVar3 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar3 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar11 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = *(double *)(iVar3 + 0x1438);" (assignment_expression "dVar47 = *(double *)(iVar3 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar3 + 0x1438)" * (cast_expression "(double *)(iVar3 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1438)" ( (binary_expression "iVar3 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar11 + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar11 + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3708)" ( (binary_expression "iVar11 + 0x3708" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339d4c);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" * (cast_expression "(code **)(pcVar33 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d4c)" ( (binary_expression "pcVar33 + 0x339d4c" identifier + number_literal) ))))) ;) (expression_statement "dVar35 = dVar46;" (assignment_expression "dVar35 = dVar46" identifier = identifier) ;) (expression_statement "dVar44 = dVar46;" (assignment_expression "dVar44 = dVar46" identifier = identifier) ;) (expression_statement "dVar37 = dVar47;" (assignment_expression "dVar37 = dVar47" identifier = identifier) ;) (do_statement "do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);" do (compound_statement "{\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    }" { (expression_statement "pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);" (assignment_expression "pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" identifier = (cast_expression "(float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(uVar15,0,uVar28,uVar4,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339d4c))" ( (pointer_expression "**(code **)(pcVar33 + 0x339d4c)" * (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" * (cast_expression "(code **)(pcVar33 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d4c)" ( (binary_expression "pcVar33 + 0x339d4c" identifier + number_literal) ))))) )) (argument_list "(uVar5,0,uVar28,uVar4,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }" if (parenthesized_expression "((pfVar8 == (float *)0x0) || (iVar9 == 0))" ( (binary_expression "(pfVar8 == (float *)0x0) || (iVar9 == 0)" (parenthesized_expression "(pfVar8 == (float *)0x0)" ( (binary_expression "pfVar8 == (float *)0x0" identifier == (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0006fc88;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }" if (parenthesized_expression "(0 < (int)uVar4)" ( (binary_expression "0 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }" { (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "piVar29 = *(int **)(iVar2 + 0x2d0);" (assignment_expression "piVar29 = *(int **)(iVar2 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar2 + 0x2d0)" * (cast_expression "(int **)(iVar2 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x2d0)" ( (binary_expression "iVar2 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1b0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" * (cast_expression "(double *)(iStack_1b0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b0 + 0x1440)" ( (binary_expression "iStack_1b0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = piVar29[0x13];" (assignment_expression "iVar31 = piVar29[0x13]" identifier = (subscript_expression "piVar29[0x13]" identifier [ number_literal ])) ;) (expression_statement "dVar43 = *(double *)(iVar3 + 0x1438);" (assignment_expression "dVar43 = *(double *)(iVar3 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar3 + 0x1438)" * (cast_expression "(double *)(iVar3 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1438)" ( (binary_expression "iVar3 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(iVar11 + 0x3708);" (assignment_expression "fVar39 = *(float *)(iVar11 + 0x3708)" identifier = (pointer_expression "*(float *)(iVar11 + 0x3708)" * (cast_expression "(float *)(iVar11 + 0x3708)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3708)" ( (binary_expression "iVar11 + 0x3708" identifier + number_literal) ))))) ;) (do_statement "do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);" do (compound_statement "{\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        }" { (while_statement "while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }" while (parenthesized_expression "(((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))))" ( (parenthesized_expression "((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))" ( (binary_expression "(iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (parenthesized_expression "(iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39))" ( (binary_expression "iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)" (binary_expression "iVar31 != 0" identifier != number_literal) && (parenthesized_expression "(pfVar8[piVar29[0x14]] <= fVar39)" ( (binary_expression "pfVar8[piVar29[0x14]] <= fVar39" (subscript_expression "pfVar8[piVar29[0x14]]" identifier [ (subscript_expression "piVar29[0x14]" identifier [ number_literal ]) ]) <= identifier) ))) )) || (parenthesized_expression "((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" ( (parenthesized_expression "(iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))" ( (comma_expression "iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (assignment_expression "iVar23 = piVar30[0xb4]" identifier = (subscript_expression "piVar30[0xb4]" identifier [ number_literal ])) , (binary_expression "*(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (binary_expression "*(int *)(iVar23 + 0x4c) != 0" (pointer_expression "*(int *)(iVar23 + 0x4c)" * (cast_expression "(int *)(iVar23 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x4c)" ( (binary_expression "iVar23 + 0x4c" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "(*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" ( (binary_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar23 + 0x50) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar23 + 0x50) * 4" identifier + (binary_expression "*(int *)(iVar23 + 0x50) * 4" (pointer_expression "*(int *)(iVar23 + 0x50)" * (cast_expression "(int *)(iVar23 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x50)" ( (binary_expression "iVar23 + 0x50" identifier + number_literal) )))) * number_literal)) )))) <= (cast_expression "(float)uVar45" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) ))) )) )) (compound_statement "{\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }" { (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);" (assignment_expression "pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0)" identifier = (binary_expression "pfVar8 + *(int *)(iVar2 + 0x2c0)" identifier + (pointer_expression "*(int *)(iVar2 + 0x2c0)" * (cast_expression "(int *)(iVar2 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c0)" ( (binary_expression "iVar2 + 0x2c0" identifier + number_literal) )))))) ;) (expression_statement "iVar9 = iVar9 + piVar30[0xb0] * 4;" (assignment_expression "iVar9 = iVar9 + piVar30[0xb0] * 4" identifier = (binary_expression "iVar9 + piVar30[0xb0] * 4" identifier + (binary_expression "piVar30[0xb0] * 4" (subscript_expression "piVar30[0xb0]" identifier [ number_literal ]) * number_literal))) ;) (if_statement "if (uVar27 == uVar4) goto LAB_0006fc4c;" if (parenthesized_expression "(uVar27 == uVar4)" ( (binary_expression "uVar27 == uVar4" identifier == identifier) )) (goto_statement "goto LAB_0006fc4c;" goto statement_identifier ;)) })) (expression_statement "dVar36 = dVar43;" (assignment_expression "dVar36 = dVar43" identifier = identifier) ;) (if_statement "if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }" if (parenthesized_expression "(piVar29[0xd] != 0)" ( (binary_expression "piVar29[0xd] != 0" (subscript_expression "piVar29[0xd]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }" { (expression_statement "dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;" (assignment_expression "dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40" identifier = (binary_expression "(double)pfVar8[piVar29[0xe]] * dVar40" (cast_expression "(double)pfVar8[piVar29[0xe]]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pfVar8[piVar29[0xe]]" identifier [ (subscript_expression "piVar29[0xe]" identifier [ number_literal ]) ])) * identifier)) ;) })) (expression_statement "dVar38 = dVar37;" (assignment_expression "dVar38 = dVar37" identifier = identifier) ;) (if_statement "if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }" if (parenthesized_expression "(*(int *)(iVar23 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar23 + 0x34) != 0" (pointer_expression "*(int *)(iVar23 + 0x34)" * (cast_expression "(int *)(iVar23 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x34)" ( (binary_expression "iVar23 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }" { (expression_statement "dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;" (assignment_expression "dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40" identifier = (binary_expression "(double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40" (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar23 + 0x38) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar23 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar23 + 0x38) * 4" (pointer_expression "*(int *)(iVar23 + 0x38)" * (cast_expression "(int *)(iVar23 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x38)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) })) (expression_statement "iVar26 = *(int *)(iVar2 + 0x2c0);" (assignment_expression "iVar26 = *(int *)(iVar2 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar2 + 0x2c0)" * (cast_expression "(int *)(iVar2 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c0)" ( (binary_expression "iVar2 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" if (parenthesized_expression "(0 < iVar26)" ( (binary_expression "0 < iVar26" number_literal < identifier) )) (compound_statement "{\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" { (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (expression_statement "piVar10 = piVar29;" (assignment_expression "piVar10 = piVar29" identifier = identifier) ;) (expression_statement "pfVar19 = pfVar8;" (assignment_expression "pfVar19 = pfVar8" identifier = identifier) ;) (do_statement "do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);" do (compound_statement "{\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            }" { (expression_statement "iVar24 = *piVar10;" (assignment_expression "iVar24 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar12 = iVar23 + iVar24 * 0xc;" (assignment_expression "iVar12 = iVar23 + iVar24 * 0xc" identifier = (binary_expression "iVar23 + iVar24 * 0xc" identifier + (binary_expression "iVar24 * 0xc" identifier * number_literal))) ;) (if_statement "if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }" if (parenthesized_expression "(((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0))" ( (binary_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)" (parenthesized_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))" ( (binary_expression "(piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0)" (parenthesized_expression "(piVar29[iVar24 * 3 + 1] != 0)" ( (binary_expression "piVar29[iVar24 * 3 + 1] != 0" (subscript_expression "piVar29[iVar24 * 3 + 1]" identifier [ (binary_expression "iVar24 * 3 + 1" (binary_expression "iVar24 * 3" identifier * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0)" ( (comma_expression "uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar12 + 4)" identifier = (pointer_expression "*(uint *)(iVar12 + 4)" * (cast_expression "(uint *)(iVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) , (binary_expression "uVar25 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "((uVar25 & 2) != 0)" ( (binary_expression "(uVar25 & 2) != 0" (parenthesized_expression "(uVar25 & 2)" ( (binary_expression "uVar25 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }" { (expression_statement "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);" (assignment_expression "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar12 + 8) * 4" identifier + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" if (parenthesized_expression "(iVar24 == 4)" ( (binary_expression "iVar24 == 4" identifier == number_literal) )) (compound_statement "{\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }" { (expression_statement "dVar41 = (double)*pfVar19 - dVar41;" (assignment_expression "dVar41 = (double)*pfVar19 - dVar41" identifier = (binary_expression "(double)*pfVar19 - dVar41" (cast_expression "(double)*pfVar19" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar19" * identifier)) - identifier)) ;) }) (else_clause "else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" else (compound_statement "{\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" { (expression_statement "dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;" (assignment_expression "dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41" identifier = (binary_expression "dVar36 * (double)*pfVar19 - dVar38 * dVar41" (binary_expression "dVar36 * (double)*pfVar19" identifier * (cast_expression "(double)*pfVar19" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar19" * identifier))) - (binary_expression "dVar38 * dVar41" identifier * identifier))) ;) }))) (expression_statement "dVar35 = dVar35 + dVar47;" (assignment_expression "dVar35 = dVar35 + dVar47" identifier = (binary_expression "dVar35 + dVar47" identifier + identifier)) ;) (expression_statement "dVar42 = ABS(dVar41);" (assignment_expression "dVar42 = ABS(dVar41)" identifier = (call_expression "ABS(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (expression_statement "dVar46 = dVar42 * dVar42 + dVar46;" (assignment_expression "dVar46 = dVar42 * dVar42 + dVar46" identifier = (binary_expression "dVar42 * dVar42 + dVar46" (binary_expression "dVar42 * dVar42" identifier * identifier) + identifier)) ;) (expression_statement "*pdVar16 = *pdVar16 + dVar42;" (assignment_expression "*pdVar16 = *pdVar16 + dVar42" (pointer_expression "*pdVar16" * identifier) = (binary_expression "*pdVar16 + dVar42" (pointer_expression "*pdVar16" * identifier) + identifier)) ;) (expression_statement "pdVar17[0x40] = pdVar17[0x40] + dVar42;" (assignment_expression "pdVar17[0x40] = pdVar17[0x40] + dVar42" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar17[0x40] + dVar42" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }" if (parenthesized_expression "(dVar44 < dVar42)" ( (binary_expression "dVar44 < dVar42" identifier < identifier) )) (compound_statement "{\n                  dVar44 = ABS(dVar41);\n                }" { (expression_statement "dVar44 = ABS(dVar41);" (assignment_expression "dVar44 = ABS(dVar41)" identifier = (call_expression "ABS(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) })) })) (expression_statement "pdVar16 = pdVar16 + 1;" (assignment_expression "pdVar16 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = piVar10 + 3;" (assignment_expression "piVar10 = piVar10 + 3" identifier = (binary_expression "piVar10 + 3" identifier + number_literal)) ;) (expression_statement "pfVar19 = pfVar19 + 1;" (assignment_expression "pfVar19 = pfVar19 + 1" identifier = (binary_expression "pfVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar16 != pdVar17 + iVar26)" ( (binary_expression "pdVar16 != pdVar17 + iVar26" identifier != (binary_expression "pdVar17 + iVar26" identifier + identifier)) )) ;) })) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar8 = pfVar8 + iVar26;" (assignment_expression "pfVar8 = pfVar8 + iVar26" identifier = (binary_expression "pfVar8 + iVar26" identifier + identifier)) ;) (expression_statement "iVar9 = iVar9 + piVar30[0xb0] * 4;" (assignment_expression "iVar9 = iVar9 + piVar30[0xb0] * 4" identifier = (binary_expression "iVar9 + piVar30[0xb0] * 4" identifier + (binary_expression "piVar30[0xb0] * 4" (subscript_expression "piVar30[0xb0]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(uVar27 != uVar4)" ( (binary_expression "uVar27 != uVar4" identifier != identifier) )) ;) })) (labeled_statement "LAB_0006fc4c:\n      uVar28 = uVar28 + 1;" statement_identifier : (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339d4c);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" * (cast_expression "(code **)(pcVar33 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x339d4c)" ( (binary_expression "pcVar33 + 0x339d4c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar28 != uVar18)" ( (binary_expression "uVar28 != uVar18" identifier != identifier) )) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar5);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar33 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar33 + 0x3395e4)" * (cast_expression "(code **)(pcVar33 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3395e4)" ( (binary_expression "pcVar33 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar15);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar15)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar33 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar33 + 0x3395e4)" * (cast_expression "(code **)(pcVar33 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x3395e4)" ( (binary_expression "pcVar33 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "dVar37 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar37 = *(double *)(iStack_1b0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" * (cast_expression "(double *)(iStack_1b0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b0 + 0x1440)" ( (binary_expression "iStack_1b0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" ( (binary_expression "*(int *)(pcVar33 + 0x338fd0) + 0x3700" (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" * (cast_expression "(int *)(pcVar33 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x338fd0)" ( (binary_expression "pcVar33 + 0x338fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;" (assignment_expression "*(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35" (pointer_expression "*(double *)(iVar2 + 0x2d8)" * (cast_expression "(double *)(iVar2 + 0x2d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2d8)" ( (binary_expression "iVar2 + 0x2d8" identifier + number_literal) )))) = (binary_expression "pdVar17[0x40] / dVar35" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) / identifier)) ;) (expression_statement "*(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;" (assignment_expression "*(double *)(iVar2 + 0x2e8) = dVar44 * dVar37" (pointer_expression "*(double *)(iVar2 + 0x2e8)" * (cast_expression "(double *)(iVar2 + 0x2e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2e8)" ( (binary_expression "iVar2 + 0x2e8" identifier + number_literal) )))) = (binary_expression "dVar44 * dVar37" identifier * identifier)) ;) (expression_statement "*(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;" (assignment_expression "*(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35" (pointer_expression "*(double *)(iVar2 + 0x2e0)" * (cast_expression "(double *)(iVar2 + 0x2e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2e0)" ( (binary_expression "iVar2 + 0x2e0" identifier + number_literal) )))) = (binary_expression "(dVar46 * dVar47) / dVar35" (parenthesized_expression "(dVar46 * dVar47)" ( (binary_expression "dVar46 * dVar47" identifier * identifier) )) / identifier)) ;) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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 { (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression 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 IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (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)) ;) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (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 = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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 <= (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) ))))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;)) }) (else_clause else (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 (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) )))) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (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) ))))) ;)) }))) }))) (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 (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) ))))) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) }))) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 (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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 (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) ))))) )) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 IDENT = (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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) }))) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (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 IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 IDENT = (unary_expression - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < 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 (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 (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 IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (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 IDENT = (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 , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (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 , LIT , IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 = (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 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) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (subscript_expression IDENT [ LIT ]) ]) <= IDENT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (subscript_expression IDENT [ LIT ]) ])) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = 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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) * 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 < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) - IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) - (binary_expression IDENT * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) })) (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)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_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) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (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 (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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) )))) = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT * IDENT) )) / IDENT)) ;) (return_statement return IDENT ;) })))
(function_definition "int TransformImageColorspace(int param_1,int param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}" (primitive_type "int") (function_declarator "TransformImageColorspace(int param_1,int param_2,undefined4 param_3)" (identifier "TransformImageColorspace") (parameter_list "(int param_1,int param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  float *pfVar8;\n  int iVar9;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar10;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar11;\n  int iVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  undefined *puVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  int unaff_s0;\n  uint uVar28;\n  int *piVar29;\n  int *piVar30;\n  int iVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  float fVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  ulonglong uVar45;\n  double dVar46;\n  double dVar47;\n  undefined8 uVar48;\n  int iStack_1b0;\n  double dStack_128;\n  int iStack_120;\n  undefined4 uStack_11c;\n  int iStack_118;\n  double *pdStack_114;\n  double *pdStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  int iStack_f4;\n  int iStack_ec;\n  int iStack_e8;\n  undefined *puStack_e4;\n  uint uStack_e0;\n  undefined *puStack_dc;\n  uint uStack_d8;\n  int *piStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  undefined4 uStack_c8;\n  code *pcStack_c4;\n  undefined *puStack_b0;\n  double *pdStack_a4;\n  double dStack_a0;\n  undefined *puStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  undefined *puStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  uint uStack_80;\n  uint uStack_7c;\n  int iStack_78;\n  int iStack_6c;\n  int iStack_68;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }\n  uVar15 = 0x5e6;\n  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;\n  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  puStack_b0 = puVar32 + 0x3416c0;\n  dVar35 = *(double *)(puVar14 + 0x248);\n  dVar44 = *(double *)(puVar13 + 0x248);\n  piVar30 = *(int **)(puVar32 + 0x33a040);\n  iStack_6c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(puVar13 + 0x1c);\n  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }\n  uVar4 = *(uint *)(puVar13 + 0x18);\n  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }\n  iStack_68 = unaff_s0;\n  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);\n  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);\n  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar21 = 0;\n  pdVar17 = &dStack_a0;\n  iStack_78 = 1;\n  dStack_a0 = dVar44;\n  puStack_98 = puVar13;\n  puStack_94 = puVar14;\n  uStack_90 = uVar15;\n  puStack_8c = puVar20;\n  uStack_88 = uVar5;\n  uStack_84 = uVar6;\n  uStack_80 = uVar4;\n  uStack_7c = uVar18;\n  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_78;\n  (**(code **)(puStack_b0 + -0x79bc))(uVar6);\n  (**(code **)(puStack_b0 + -0x79bc))(uVar5);\n  if (iStack_6c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(puStack_b0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar3 = iStack_6c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar3 + 0x1c);\n  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar3 + 0x18);\n  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_e8 = iVar2;\n  iStack_ec = *piVar29;\n  puStack_e4 = puVar14;\n  uStack_e0 = uVar18;\n  puStack_dc = puVar20;\n  uStack_d8 = uVar4;\n  piStack_d4 = piVar30;\n  uStack_d0 = uVar15;\n  uStack_cc = uVar5;\n  uStack_c8 = uVar6;\n  pcStack_c4 = pcVar34;\n  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar22 = (int *)0x0;\n  piVar30 = &iStack_120;\n  iStack_f4 = 1;\n  uStack_11c = 0;\n  iStack_120 = 0;\n  uStack_100 = 0;\n  iStack_118 = iVar3;\n  pdStack_114 = pdVar17;\n  pdStack_110 = pdVar16;\n  uStack_10c = uVar21;\n  uStack_108 = uVar15;\n  uStack_104 = uVar5;\n  uStack_fc = uVar27;\n  uStack_f8 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar11 = iStack_f4;\n  uVar6 = uStack_11c;\n  iVar2 = iStack_120;\n  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar5);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar15);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar2 = *piVar29;\n  pdVar16[0x40] = pdVar16[0x40] / dVar35;\n  if (iStack_ec == iVar2) {\n    return iVar11;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_ec;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar4 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }\n  uVar15 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar15);\n  dVar37 = *(double *)(iStack_1b0 + 0x1440);\n  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);\n  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;\n  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;\n  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;\n  return iVar3;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "double *pdVar7;" (primitive_type "double") (pointer_declarator "*pdVar7" (* "*") (identifier "pdVar7")) (; ";")) (declaration "float *pfVar8;" (primitive_type "float") (pointer_declarator "*pfVar8" (* "*") (identifier "pfVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "double *extraout_v1_00;" (primitive_type "double") (pointer_declarator "*extraout_v1_00" (* "*") (identifier "extraout_v1_00")) (; ";")) (declaration "int extraout_v1_01;" (primitive_type "int") (identifier "extraout_v1_01") (; ";")) (declaration "int extraout_v1_02;" (primitive_type "int") (identifier "extraout_v1_02") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int extraout_v1_03;" (primitive_type "int") (identifier "extraout_v1_03") (; ";")) (declaration "int extraout_v1_04;" (primitive_type "int") (identifier "extraout_v1_04") (; ";")) (declaration "int extraout_v1_05;" (primitive_type "int") (identifier "extraout_v1_05") (; ";")) (declaration "int extraout_v1_06;" (primitive_type "int") (identifier "extraout_v1_06") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "double *pdVar16;" (primitive_type "double") (pointer_declarator "*pdVar16" (* "*") (identifier "pdVar16")) (; ";")) (declaration "double *pdVar17;" (primitive_type "double") (pointer_declarator "*pdVar17" (* "*") (identifier "pdVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "float *pfVar19;" (primitive_type "float") (pointer_declarator "*pfVar19" (* "*") (identifier "pfVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (identifier "unaff_s0") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "int *piVar29;" (primitive_type "int") (pointer_declarator "*piVar29" (* "*") (identifier "piVar29")) (; ";")) (declaration "int *piVar30;" (primitive_type "int") (pointer_declarator "*piVar30" (* "*") (identifier "piVar30")) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "undefined *puVar32;" (type_identifier "undefined") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "code *pcVar33;" (type_identifier "code") (pointer_declarator "*pcVar33" (* "*") (identifier "pcVar33")) (; ";")) (declaration "code *pcVar34;" (type_identifier "code") (pointer_declarator "*pcVar34" (* "*") (identifier "pcVar34")) (; ";")) (declaration "double dVar35;" (primitive_type "double") (identifier "dVar35") (; ";")) (declaration "double dVar36;" (primitive_type "double") (identifier "dVar36") (; ";")) (declaration "double dVar37;" (primitive_type "double") (identifier "dVar37") (; ";")) (declaration "double dVar38;" (primitive_type "double") (identifier "dVar38") (; ";")) (declaration "float fVar39;" (primitive_type "float") (identifier "fVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "double dVar41;" (primitive_type "double") (identifier "dVar41") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "double dVar43;" (primitive_type "double") (identifier "dVar43") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "ulonglong uVar45;" (type_identifier "ulonglong") (identifier "uVar45") (; ";")) (declaration "double dVar46;" (primitive_type "double") (identifier "dVar46") (; ";")) (declaration "double dVar47;" (primitive_type "double") (identifier "dVar47") (; ";")) (declaration "undefined8 uVar48;" (type_identifier "undefined8") (identifier "uVar48") (; ";")) (declaration "int iStack_1b0;" (primitive_type "int") (identifier "iStack_1b0") (; ";")) (declaration "double dStack_128;" (primitive_type "double") (identifier "dStack_128") (; ";")) (declaration "int iStack_120;" (primitive_type "int") (identifier "iStack_120") (; ";")) (declaration "undefined4 uStack_11c;" (type_identifier "undefined4") (identifier "uStack_11c") (; ";")) (declaration "int iStack_118;" (primitive_type "int") (identifier "iStack_118") (; ";")) (declaration "double *pdStack_114;" (primitive_type "double") (pointer_declarator "*pdStack_114" (* "*") (identifier "pdStack_114")) (; ";")) (declaration "double *pdStack_110;" (primitive_type "double") (pointer_declarator "*pdStack_110" (* "*") (identifier "pdStack_110")) (; ";")) (declaration "undefined4 uStack_10c;" (type_identifier "undefined4") (identifier "uStack_10c") (; ";")) (declaration "undefined4 uStack_108;" (type_identifier "undefined4") (identifier "uStack_108") (; ";")) (declaration "undefined4 uStack_104;" (type_identifier "undefined4") (identifier "uStack_104") (; ";")) (declaration "undefined4 uStack_100;" (type_identifier "undefined4") (identifier "uStack_100") (; ";")) (declaration "uint uStack_fc;" (type_identifier "uint") (identifier "uStack_fc") (; ";")) (declaration "uint uStack_f8;" (type_identifier "uint") (identifier "uStack_f8") (; ";")) (declaration "int iStack_f4;" (primitive_type "int") (identifier "iStack_f4") (; ";")) (declaration "int iStack_ec;" (primitive_type "int") (identifier "iStack_ec") (; ";")) (declaration "int iStack_e8;" (primitive_type "int") (identifier "iStack_e8") (; ";")) (declaration "undefined *puStack_e4;" (type_identifier "undefined") (pointer_declarator "*puStack_e4" (* "*") (identifier "puStack_e4")) (; ";")) (declaration "uint uStack_e0;" (type_identifier "uint") (identifier "uStack_e0") (; ";")) (declaration "undefined *puStack_dc;" (type_identifier "undefined") (pointer_declarator "*puStack_dc" (* "*") (identifier "puStack_dc")) (; ";")) (declaration "uint uStack_d8;" (type_identifier "uint") (identifier "uStack_d8") (; ";")) (declaration "int *piStack_d4;" (primitive_type "int") (pointer_declarator "*piStack_d4" (* "*") (identifier "piStack_d4")) (; ";")) (declaration "undefined4 uStack_d0;" (type_identifier "undefined4") (identifier "uStack_d0") (; ";")) (declaration "undefined4 uStack_cc;" (type_identifier "undefined4") (identifier "uStack_cc") (; ";")) (declaration "undefined4 uStack_c8;" (type_identifier "undefined4") (identifier "uStack_c8") (; ";")) (declaration "code *pcStack_c4;" (type_identifier "code") (pointer_declarator "*pcStack_c4" (* "*") (identifier "pcStack_c4")) (; ";")) (declaration "undefined *puStack_b0;" (type_identifier "undefined") (pointer_declarator "*puStack_b0" (* "*") (identifier "puStack_b0")) (; ";")) (declaration "double *pdStack_a4;" (primitive_type "double") (pointer_declarator "*pdStack_a4" (* "*") (identifier "pdStack_a4")) (; ";")) (declaration "double dStack_a0;" (primitive_type "double") (identifier "dStack_a0") (; ";")) (declaration "undefined *puStack_98;" (type_identifier "undefined") (pointer_declarator "*puStack_98" (* "*") (identifier "puStack_98")) (; ";")) (declaration "undefined *puStack_94;" (type_identifier "undefined") (pointer_declarator "*puStack_94" (* "*") (identifier "puStack_94")) (; ";")) (declaration "undefined4 uStack_90;" (type_identifier "undefined4") (identifier "uStack_90") (; ";")) (declaration "undefined *puStack_8c;" (type_identifier "undefined") (pointer_declarator "*puStack_8c" (* "*") (identifier "puStack_8c")) (; ";")) (declaration "undefined4 uStack_88;" (type_identifier "undefined4") (identifier "uStack_88") (; ";")) (declaration "undefined4 uStack_84;" (type_identifier "undefined4") (identifier "uStack_84") (; ";")) (declaration "uint uStack_80;" (type_identifier "uint") (identifier "uStack_80") (; ";")) (declaration "uint uStack_7c;" (type_identifier "uint") (identifier "uStack_7c") (; ";")) (declaration "int iStack_78;" (primitive_type "int") (identifier "iStack_78") (; ";")) (declaration "int iStack_6c;" (primitive_type "int") (identifier "iStack_6c") (; ";")) (declaration "int iStack_68;" (primitive_type "int") (identifier "iStack_68") (; ";")) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }\n  else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0xdd0" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0xdd0")) (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5970")) (, ",") (number_literal "0x5e5") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x4010")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }\n  }" ({ "{") (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" (* "*") (cast_expression "(int *)(param_1 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x336c)" (( "(") (binary_expression "param_1 + 0x336c" (identifier "param_1") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);\n      (*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);\n      if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }\n      if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(param_1,param_3);\n      return iVar2;\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 4);\n      }\n      else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3350) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3350) == 0" (pointer_expression "*(int *)(param_1 + 0x3350)" (* "*") (cast_expression "(int *)(param_1 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3350)" (( "(") (binary_expression "param_1 + 0x3350" (identifier "param_1") (+ "+") (number_literal "0x3350")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = *(int *)(param_1 + 4);\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);\n        iVar2 = *(int *)(param_1 + 4);\n      }" ({ "{") (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_003a91e0"))) () ")")) (argument_list "(0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,\n                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5970")) (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x402c")) (, ",") (number_literal "0x5e8") () ")"))) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar2 == param_2) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(iVar2 == param_2)" (( "(") (binary_expression "iVar2 == param_2" (identifier "iVar2") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);\n        return iVar2;\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);" (assignment_expression "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" (( "(") (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" (* "*") (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageColorspace_003a8d40"))) () ")")) (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" (( "(") (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" (* "*") (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DeleteImageProfile_003a9828"))) () ")")) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5890")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);" (call_expression "(*(code *)PTR_DeleteImageProfile_003a9828)\n                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" (parenthesized_expression "(*(code *)PTR_DeleteImageProfile_003a9828)" (( "(") (pointer_expression "*(code *)PTR_DeleteImageProfile_003a9828" (* "*") (cast_expression "(code *)PTR_DeleteImageProfile_003a9828" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DeleteImageProfile_003a9828"))) () ")")) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x588c")) () ")"))) (; ";")) (if_statement "if (param_2 == 0) {\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);\n        return iVar2;\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);" (assignment_expression "iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3)" (parenthesized_expression "(*(code *)PTR_SetImageColorspace_003a8d40)" (( "(") (pointer_expression "*(code *)PTR_SetImageColorspace_003a8d40" (* "*") (cast_expression "(code *)PTR_SetImageColorspace_003a8d40" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageColorspace_003a8d40"))) () ")")) (argument_list "(param_1,0,param_3)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (if_statement "if (1 < param_2 - 0x17U) {\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(1 < param_2 - 0x17U)" (( "(") (binary_expression "1 < param_2 - 0x17U" (number_literal "1") (< "<") (binary_expression "param_2 - 0x17U" (identifier "param_2") (- "-") (number_literal "0x17U"))) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar3 = FUN_0006d178(param_1,param_2,param_3);\n        if (iVar3 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 4) - 0x17U < 2)" (( "(") (binary_expression "*(int *)(param_1 + 4) - 0x17U < 2" (binary_expression "*(int *)(param_1 + 4) - 0x17U" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (- "-") (number_literal "0x17U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          iVar2 = 1;\n        }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar2 = FUN_0006b9c8(param_1,param_3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" ({ "{") (expression_statement "iVar2 = FUN_0006b9c8(param_1,param_3);" (assignment_expression "iVar2 = FUN_0006b9c8(param_1,param_3)" (identifier "iVar2") (= "=") (call_expression "FUN_0006b9c8(param_1,param_3)" (identifier "FUN_0006b9c8") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar3 = FUN_0006d178(param_1,param_2,param_3);" (assignment_expression "iVar3 = FUN_0006d178(param_1,param_2,param_3)" (identifier "iVar3") (= "=") (call_expression "FUN_0006d178(param_1,param_2,param_3)" (identifier "FUN_0006d178") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_0006b9c8(param_1,param_3);" (assignment_expression "iVar2 = FUN_0006b9c8(param_1,param_3)" (identifier "iVar2") (= "=") (call_expression "FUN_0006b9c8(param_1,param_3)" (identifier "FUN_0006b9c8") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar15 = 0x5e6;" (assignment_expression "uVar15 = 0x5e6" (identifier "uVar15") (= "=") (number_literal "0x5e6")) (; ";")) (expression_statement "puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;" (assignment_expression "puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" (identifier "puVar20") (= "=") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x4010"))) (; ";")) (expression_statement "puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" (identifier "puVar14") (= "=") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5970"))) (; ";")) (expression_statement "puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;" (assignment_expression "puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" (identifier "puVar13") (= "=") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3784"))) (; ";")) (expression_statement "puVar32 = PTR___assert_fail_003a9608;" (assignment_expression "puVar32 = PTR___assert_fail_003a9608" (identifier "puVar32") (= "=") (identifier "PTR___assert_fail_003a9608")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_003a9608)();" (call_expression "(*(code *)PTR___assert_fail_003a9608)()" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_b0 = puVar32 + 0x3416c0;" (assignment_expression "puStack_b0 = puVar32 + 0x3416c0" (identifier "puStack_b0") (= "=") (binary_expression "puVar32 + 0x3416c0" (identifier "puVar32") (+ "+") (number_literal "0x3416c0"))) (; ";")) (expression_statement "dVar35 = *(double *)(puVar14 + 0x248);" (assignment_expression "dVar35 = *(double *)(puVar14 + 0x248)" (identifier "dVar35") (= "=") (pointer_expression "*(double *)(puVar14 + 0x248)" (* "*") (cast_expression "(double *)(puVar14 + 0x248)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x248)" (( "(") (binary_expression "puVar14 + 0x248" (identifier "puVar14") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "dVar44 = *(double *)(puVar13 + 0x248);" (assignment_expression "dVar44 = *(double *)(puVar13 + 0x248)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(puVar13 + 0x248)" (* "*") (cast_expression "(double *)(puVar13 + 0x248)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x248)" (( "(") (binary_expression "puVar13 + 0x248" (identifier "puVar13") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "piVar30 = *(int **)(puVar32 + 0x33a040);" (assignment_expression "piVar30 = *(int **)(puVar32 + 0x33a040)" (identifier "piVar30") (= "=") (pointer_expression "*(int **)(puVar32 + 0x33a040)" (* "*") (cast_expression "(int **)(puVar32 + 0x33a040)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a040)" (( "(") (binary_expression "puVar32 + 0x33a040" (identifier "puVar32") (+ "+") (number_literal "0x33a040")) () ")"))))) (; ";")) (expression_statement "iStack_6c = *piVar30;" (assignment_expression "iStack_6c = *piVar30" (identifier "iStack_6c") (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (if_statement "if (dVar35 < dVar44) {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" (if "if") (parenthesized_expression "(dVar35 < dVar44)" (( "(") (binary_expression "dVar35 < dVar44" (identifier "dVar35") (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(puVar32 + 0x3396f8);" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x3396f8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar32 + 0x3396f8)" (* "*") (cast_expression "(int *)(puVar32 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x3396f8)" (( "(") (binary_expression "puVar32 + 0x3396f8" (identifier "puVar32") (+ "+") (number_literal "0x3396f8")) () ")"))))) (; ";")) (if_statement "if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" (if "if") (parenthesized_expression "(dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8))" (( "(") (binary_expression "dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (identifier "dVar44") (<= "<=") (pointer_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (* "*") (cast_expression "(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (( "(") (binary_expression "*(int *)(puVar32 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar32 + 0x3396f8)" (* "*") (cast_expression "(int *)(puVar32 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x3396f8)" (( "(") (binary_expression "puVar32 + 0x3396f8" (identifier "puVar32") (+ "+") (number_literal "0x3396f8")) () ")")))) (+ "+") (number_literal "-0x5ac8")) () ")"))))) () ")")) (goto_statement "goto LAB_0006f270;" (goto "goto") (statement_identifier "LAB_0006f270") (; ";"))) (labeled_statement "LAB_0006f470:\n    dVar44 = dVar44 * dVar44;" (statement_identifier "LAB_0006f470") (: ":") (expression_statement "dVar44 = dVar44 * dVar44;" (assignment_expression "dVar44 = dVar44 * dVar44" (identifier "dVar44") (= "=") (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44"))) (; ";"))) (} "}")) (else_clause "else {\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = *(int *)(puVar32 + 0x3396f8);\n    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(puVar32 + 0x3396f8);" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x3396f8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar32 + 0x3396f8)" (* "*") (cast_expression "(int *)(puVar32 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x3396f8)" (( "(") (binary_expression "puVar32 + 0x3396f8" (identifier "puVar32") (+ "+") (number_literal "0x3396f8")) () ")"))))) (; ";")) (if_statement "if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35)" (( "(") (binary_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35" (pointer_expression "*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (* "*") (cast_expression "(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)" (( "(") (binary_expression "*(int *)(puVar32 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(puVar32 + 0x3396f8)" (* "*") (cast_expression "(int *)(puVar32 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x3396f8)" (( "(") (binary_expression "puVar32 + 0x3396f8" (identifier "puVar32") (+ "+") (number_literal "0x3396f8")) () ")")))) (+ "+") (number_literal "-0x5ac8")) () ")")))) (< "<") (identifier "dVar35")) () ")")) (compound_statement "{\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }" ({ "{") (if_statement "if (dVar35 < dVar44) goto LAB_0006f470;" (if "if") (parenthesized_expression "(dVar35 < dVar44)" (( "(") (binary_expression "dVar35 < dVar44" (identifier "dVar35") (< "<") (identifier "dVar44")) () ")")) (goto_statement "goto LAB_0006f470;" (goto "goto") (statement_identifier "LAB_0006f470") (; ";"))) (expression_statement "dVar44 = dVar35 * dVar35;" (assignment_expression "dVar44 = dVar35 * dVar35" (identifier "dVar44") (= "=") (binary_expression "dVar35 * dVar35" (identifier "dVar35") (* "*") (identifier "dVar35"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" (else "else") (compound_statement "{\nLAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);\n    }" ({ "{") (labeled_statement "LAB_0006f270:\n      dVar44 = *(double *)(iVar2 + -0x5ad0);" (statement_identifier "LAB_0006f270") (: ":") (expression_statement "dVar44 = *(double *)(iVar2 + -0x5ad0);" (assignment_expression "dVar44 = *(double *)(iVar2 + -0x5ad0)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(iVar2 + -0x5ad0)" (* "*") (cast_expression "(double *)(iVar2 + -0x5ad0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x5ad0)" (( "(") (binary_expression "iVar2 + -0x5ad0" (identifier "iVar2") (+ "+") (number_literal "-0x5ad0")) () ")"))))) (; ";"))) (} "}")))) (} "}")))) (expression_statement "uVar18 = *(uint *)(puVar13 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(puVar13 + 0x1c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(puVar13 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar13 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1c)" (( "(") (binary_expression "puVar13 + 0x1c" (identifier "puVar13") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }" (if "if") (parenthesized_expression "(*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c))" (( "(") (binary_expression "*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)" (pointer_expression "*(uint *)(puVar13 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar13 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1c)" (( "(") (binary_expression "puVar13 + 0x1c" (identifier "puVar13") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(puVar14 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar14 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x1c)" (( "(") (binary_expression "puVar14 + 0x1c" (identifier "puVar14") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n    uVar18 = *(uint *)(puVar14 + 0x1c);\n  }" ({ "{") (expression_statement "uVar18 = *(uint *)(puVar14 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(puVar14 + 0x1c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(puVar14 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar14 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x1c)" (( "(") (binary_expression "puVar14 + 0x1c" (identifier "puVar14") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar4 = *(uint *)(puVar13 + 0x18);" (assignment_expression "uVar4 = *(uint *)(puVar13 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(puVar13 + 0x18)" (* "*") (cast_expression "(uint *)(puVar13 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x18)" (( "(") (binary_expression "puVar13 + 0x18" (identifier "puVar13") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }" (if "if") (parenthesized_expression "(*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18))" (( "(") (binary_expression "*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)" (pointer_expression "*(uint *)(puVar13 + 0x18)" (* "*") (cast_expression "(uint *)(puVar13 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x18)" (( "(") (binary_expression "puVar13 + 0x18" (identifier "puVar13") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(puVar14 + 0x18)" (* "*") (cast_expression "(uint *)(puVar14 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x18)" (( "(") (binary_expression "puVar14 + 0x18" (identifier "puVar14") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n    uVar4 = *(uint *)(puVar14 + 0x18);\n  }" ({ "{") (expression_statement "uVar4 = *(uint *)(puVar14 + 0x18);" (assignment_expression "uVar4 = *(uint *)(puVar14 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(puVar14 + 0x18)" (* "*") (cast_expression "(uint *)(puVar14 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x18)" (( "(") (binary_expression "puVar14 + 0x18" (identifier "puVar14") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iStack_68 = unaff_s0;" (assignment_expression "iStack_68 = unaff_s0" (identifier "iStack_68") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);" (assignment_expression "uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar32 + 0x33a564))(puVar13,puVar20)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a564))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x33a564)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x33a564)" (* "*") (cast_expression "(code **)(puVar32 + 0x33a564)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a564)" (( "(") (binary_expression "puVar32 + 0x33a564" (identifier "puVar32") (+ "+") (number_literal "0x33a564")) () ")"))))) () ")")) (argument_list "(puVar13,puVar20)" (( "(") (identifier "puVar13") (, ",") (identifier "puVar20") () ")")))) (; ";")) (expression_statement "uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);" (assignment_expression "uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x715c))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x715c)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x715c)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x715c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x715c)" (( "(") (binary_expression "puStack_b0 + -0x715c" (identifier "puStack_b0") (+ "+") (number_literal "-0x715c")) () ")"))))) () ")")) (argument_list "(puVar14,puVar20)" (( "(") (identifier "puVar14") (, ",") (identifier "puVar20") () ")")))) (; ";")) (expression_statement "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x73fc)" (( "(") (binary_expression "puStack_b0 + -0x73fc" (identifier "puStack_b0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" (if "if") (parenthesized_expression "(((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))))" (( "(") (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))" (( "(") (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" (( "(") (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (( "(") (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x73fc)" (( "(") (binary_expression "puStack_b0 + -0x73fc" (identifier "puStack_b0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))" (( "(") (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3))" (( "(") (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x73fc)" (( "(") (binary_expression "puStack_b0 + -0x73fc" (identifier "puStack_b0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (, ",") (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)" (( "(") (comma_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puStack_b0 + -0x73fc))(puVar13)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x73fc)" (( "(") (binary_expression "puStack_b0 + -0x73fc" (identifier "puStack_b0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(puStack_b0 + -0x7774))(7);\n    uVar28 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar28 >> 6);\n    if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "uVar28 = uVar18;" (assignment_expression "uVar28 = uVar18" (identifier "uVar28") (= "=") (identifier "uVar18")) (; ";")) (if_statement "if ((int)uVar18 < 0) {\n      uVar28 = uVar18 + 0x3f;\n    }" (if "if") (parenthesized_expression "((int)uVar18 < 0)" (( "(") (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar28 = uVar18 + 0x3f;\n    }" ({ "{") (expression_statement "uVar28 = uVar18 + 0x3f;" (assignment_expression "uVar28 = uVar18 + 0x3f" (identifier "uVar28") (= "=") (binary_expression "uVar18 + 0x3f" (identifier "uVar18") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "pdVar16 = (double *)((int)uVar28 >> 6);" (assignment_expression "pdVar16 = (double *)((int)uVar28 >> 6)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((int)uVar28 >> 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)uVar28 >> 6)" (( "(") (binary_expression "(int)uVar28 >> 6" (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "6")) () ")")))) (; ";")) (if_statement "if (extraout_v1 < (int)pdVar16) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1 < (int)pdVar16)" (( "(") (binary_expression "extraout_v1 < (int)pdVar16" (identifier "extraout_v1") (< "<") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")")) (compound_statement "{\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_a4;\n    }" ({ "{") (expression_statement "pdStack_a4 = pdVar16;" (assignment_expression "pdStack_a4 = pdVar16" (identifier "pdStack_a4") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "bVar1 = extraout_v1_02 < 2;" (assignment_expression "bVar1 = extraout_v1_02 < 2" (identifier "bVar1") (= "=") (binary_expression "extraout_v1_02 < 2" (identifier "extraout_v1_02") (< "<") (number_literal "2"))) (; ";")) (expression_statement "pdVar16 = pdStack_a4;" (assignment_expression "pdVar16 = pdStack_a4" (identifier "pdVar16") (= "=") (identifier "pdStack_a4")) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" (else "else") (compound_statement "{\n      bVar1 = (int)uVar18 < 0x80;\n    }" ({ "{") (expression_statement "bVar1 = (int)uVar18 < 0x80;" (assignment_expression "bVar1 = (int)uVar18 < 0x80" (identifier "bVar1") (= "=") (binary_expression "(int)uVar18 < 0x80" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }" (if "if") (parenthesized_expression "((bool)(bVar1 ^ 1))" (( "(") (cast_expression "(bool)(bVar1 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar1 ^ 1)" (( "(") (binary_expression "bVar1 ^ 1" (identifier "bVar1") (^ "^") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      pdStack_a4 = pdVar16;\n      (**(code **)(puStack_b0 + -0x7774))(7);\n      pdVar16 = pdStack_a4;\n      if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" ({ "{") (expression_statement "pdStack_a4 = pdVar16;" (assignment_expression "pdStack_a4 = pdVar16" (identifier "pdStack_a4") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "(**(code **)(puStack_b0 + -0x7774))(7);" (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "pdVar16 = pdStack_a4;" (assignment_expression "pdVar16 = pdStack_a4" (identifier "pdVar16") (= "=") (identifier "pdStack_a4")) (; ";")) (if_statement "if (extraout_v1_01 < (int)pdStack_a4) {\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" (if "if") (parenthesized_expression "(extraout_v1_01 < (int)pdStack_a4)" (( "(") (binary_expression "extraout_v1_01 < (int)pdStack_a4" (identifier "extraout_v1_01") (< "<") (cast_expression "(int)pdStack_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_a4"))) () ")")) (compound_statement "{\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" ({ "{") (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006f4b4;" (goto "goto") (statement_identifier "LAB_0006f4b4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pdVar16 = (double *)0x1;\n    }" (else "else") (compound_statement "{\n      pdVar16 = (double *)0x1;\n    }" ({ "{") (expression_statement "pdVar16 = (double *)0x1;" (assignment_expression "pdVar16 = (double *)0x1" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x1" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" (else "else") (compound_statement "{\n    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" ({ "{") (expression_statement "uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);" (assignment_expression "uVar48 = (**(code **)(puStack_b0 + -0x7774))(7)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puStack_b0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar48")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" (if "if") (parenthesized_expression "((uint)uVar48 < 2)" (( "(") (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar48")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(puStack_b0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" ({ "{") (expression_statement "uVar48 = (*pcVar33)(7);" (assignment_expression "uVar48 = (*pcVar33)(7)" (identifier "uVar48") (= "=") (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar48 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar48")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006f310;" (goto "goto") (statement_identifier "LAB_0006f310") (; ";"))) (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }" (if "if") (parenthesized_expression "((uint)uVar48 < 2)" (( "(") (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar48")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }" ({ "{") (expression_statement "pdVar16 = (double *)0x1;" (assignment_expression "pdVar16 = (double *)0x1" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x1" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_0006f328;" (goto "goto") (statement_identifier "LAB_0006f328") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" (else "else") (compound_statement "{\nLAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);\n    }" ({ "{") (labeled_statement "LAB_0006f310:\n      pcVar33 = *(code **)(puStack_b0 + -0x7774);" (statement_identifier "LAB_0006f310") (: ":") (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar48 = (*pcVar33)(7);" (assignment_expression "uVar48 = (*pcVar33)(7)" (identifier "uVar48") (= "=") (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)" (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar48")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)" (( "(") (comma_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puStack_b0 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7774)" (( "(") (binary_expression "puStack_b0 + -0x7774" (identifier "puStack_b0") (+ "+") (number_literal "-0x7774")) () ")"))))) (, ",") (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar48")) (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\nLAB_0006f4b4:\n      (*pcVar33)(7);\n      pdVar16 = extraout_v1_00;\n    }" ({ "{") (labeled_statement "LAB_0006f4b4:\n      (*pcVar33)(7);" (statement_identifier "LAB_0006f4b4") (: ":") (expression_statement "(*pcVar33)(7);" (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";"))) (expression_statement "pdVar16 = extraout_v1_00;" (assignment_expression "pdVar16 = extraout_v1_00" (identifier "pdVar16") (= "=") (identifier "extraout_v1_00")) (; ";")) (} "}")) (else_clause "else {\n      pdVar16 = (double *)0x2;\n    }" (else "else") (compound_statement "{\n      pdVar16 = (double *)0x2;\n    }" ({ "{") (expression_statement "pdVar16 = (double *)0x2;" (assignment_expression "pdVar16 = (double *)0x2" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x2" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0006f328:\n  uVar21 = 0;" (statement_identifier "LAB_0006f328") (: ":") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pdVar17 = &dStack_a0;" (assignment_expression "pdVar17 = &dStack_a0" (identifier "pdVar17") (= "=") (pointer_expression "&dStack_a0" (& "&") (identifier "dStack_a0"))) (; ";")) (expression_statement "iStack_78 = 1;" (assignment_expression "iStack_78 = 1" (identifier "iStack_78") (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_a0 = dVar44;" (assignment_expression "dStack_a0 = dVar44" (identifier "dStack_a0") (= "=") (identifier "dVar44")) (; ";")) (expression_statement "puStack_98 = puVar13;" (assignment_expression "puStack_98 = puVar13" (identifier "puStack_98") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puStack_94 = puVar14;" (assignment_expression "puStack_94 = puVar14" (identifier "puStack_94") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "uStack_90 = uVar15;" (assignment_expression "uStack_90 = uVar15" (identifier "uStack_90") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puStack_8c = puVar20;" (assignment_expression "puStack_8c = puVar20" (identifier "puStack_8c") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "uStack_88 = uVar5;" (assignment_expression "uStack_88 = uVar5" (identifier "uStack_88") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_84 = uVar6;" (assignment_expression "uStack_84 = uVar6" (identifier "uStack_84") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uStack_80 = uVar4;" (assignment_expression "uStack_80 = uVar4" (identifier "uStack_80") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uStack_7c = uVar18;" (assignment_expression "uStack_7c = uVar18" (identifier "uStack_7c") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x7718))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x7718)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x7718)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x7718)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x7718)" (( "(") (binary_expression "puStack_b0 + -0x7718" (identifier "puStack_b0") (+ "+") (number_literal "-0x7718")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_b0 + -0x7f78) + 0x1c00)" (( "(") (binary_expression "*(int *)(puStack_b0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(puStack_b0 + -0x7f78)" (* "*") (cast_expression "(int *)(puStack_b0 + -0x7f78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_b0 + -0x7f78)" (( "(") (binary_expression "puStack_b0 + -0x7f78" (identifier "puStack_b0") (+ "+") (number_literal "-0x7f78")) () ")")))) (+ "+") (number_literal "0x1c00")) () ")"))) (; ";")) (expression_statement "iVar2 = iStack_78;" (assignment_expression "iVar2 = iStack_78" (identifier "iVar2") (= "=") (identifier "iStack_78")) (; ";")) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x79bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x79bc)" (( "(") (binary_expression "puStack_b0 + -0x79bc" (identifier "puStack_b0") (+ "+") (number_literal "-0x79bc")) () ")"))))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_b0 + -0x79bc))(uVar5);" (call_expression "(**(code **)(puStack_b0 + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(puStack_b0 + -0x79bc))" (( "(") (pointer_expression "**(code **)(puStack_b0 + -0x79bc)" (* "*") (pointer_expression "*(code **)(puStack_b0 + -0x79bc)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x79bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x79bc)" (( "(") (binary_expression "puStack_b0 + -0x79bc" (identifier "puStack_b0") (+ "+") (number_literal "-0x79bc")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (iStack_6c == *piVar30) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(iStack_6c == *piVar30)" (( "(") (binary_expression "iStack_6c == *piVar30" (identifier "iStack_6c") (== "==") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "pcVar33 = *(code **)(puStack_b0 + -0x784c);" (assignment_expression "pcVar33 = *(code **)(puStack_b0 + -0x784c)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puStack_b0 + -0x784c)" (* "*") (cast_expression "(code **)(puStack_b0 + -0x784c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_b0 + -0x784c)" (( "(") (binary_expression "puStack_b0 + -0x784c" (identifier "puStack_b0") (+ "+") (number_literal "-0x784c")) () ")"))))) (; ";")) (expression_statement "pcVar34 = FUN_0006f518;" (assignment_expression "pcVar34 = FUN_0006f518" (identifier "pcVar34") (= "=") (identifier "FUN_0006f518")) (; ";")) (expression_statement "iVar3 = iStack_6c;" (assignment_expression "iVar3 = iStack_6c" (identifier "iVar3") (= "=") (identifier "iStack_6c")) (; ";")) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar29 = *(int **)(pcVar33 + 0x339d18);" (assignment_expression "piVar29 = *(int **)(pcVar33 + 0x339d18)" (identifier "piVar29") (= "=") (pointer_expression "*(int **)(pcVar33 + 0x339d18)" (* "*") (cast_expression "(int **)(pcVar33 + 0x339d18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339d18)" (( "(") (binary_expression "pcVar33 + 0x339d18" (identifier "pcVar33") (+ "+") (number_literal "0x339d18")) () ")"))))) (; ";")) (expression_statement "uVar28 = *(uint *)(iVar3 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar3 + 0x1c)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c))" (( "(") (binary_expression "*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (pointer_expression "*(uint *)((int)pdVar17 + 0x1c)" (* "*") (cast_expression "(uint *)((int)pdVar17 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar17 + 0x1c)" (( "(") (binary_expression "(int)pdVar17 + 0x1c" (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17")) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" ({ "{") (expression_statement "uVar28 = *(uint *)((int)pdVar17 + 0x1c);" (assignment_expression "uVar28 = *(uint *)((int)pdVar17 + 0x1c)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)((int)pdVar17 + 0x1c)" (* "*") (cast_expression "(uint *)((int)pdVar17 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar17 + 0x1c)" (( "(") (binary_expression "(int)pdVar17 + 0x1c" (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar27 = *(uint *)(iVar3 + 0x18);" (assignment_expression "uVar27 = *(uint *)(iVar3 + 0x18)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x18)" (* "*") (cast_expression "(uint *)(iVar3 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3))" (( "(") (binary_expression "*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)" (pointer_expression "*(uint *)(iVar3 + 0x18)" (* "*") (cast_expression "(uint *)(iVar3 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(pdVar17 + 3)" (* "*") (cast_expression "(uint *)(pdVar17 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar17 + 3)" (( "(") (binary_expression "pdVar17 + 3" (identifier "pdVar17") (+ "+") (number_literal "3")) () ")"))))) () ")")) (compound_statement "{\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" ({ "{") (expression_statement "uVar27 = *(uint *)(pdVar17 + 3);" (assignment_expression "uVar27 = *(uint *)(pdVar17 + 3)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(pdVar17 + 3)" (* "*") (cast_expression "(uint *)(pdVar17 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar17 + 3)" (( "(") (binary_expression "pdVar17 + 3" (identifier "pdVar17") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iStack_e8 = iVar2;" (assignment_expression "iStack_e8 = iVar2" (identifier "iStack_e8") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iStack_ec = *piVar29;" (assignment_expression "iStack_ec = *piVar29" (identifier "iStack_ec") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";")) (expression_statement "puStack_e4 = puVar14;" (assignment_expression "puStack_e4 = puVar14" (identifier "puStack_e4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "uStack_e0 = uVar18;" (assignment_expression "uStack_e0 = uVar18" (identifier "uStack_e0") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puStack_dc = puVar20;" (assignment_expression "puStack_dc = puVar20" (identifier "puStack_dc") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "uStack_d8 = uVar4;" (assignment_expression "uStack_d8 = uVar4" (identifier "uStack_d8") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "piStack_d4 = piVar30;" (assignment_expression "piStack_d4 = piVar30" (identifier "piStack_d4") (= "=") (identifier "piVar30")) (; ";")) (expression_statement "uStack_d0 = uVar15;" (assignment_expression "uStack_d0 = uVar15" (identifier "uStack_d0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uStack_cc = uVar5;" (assignment_expression "uStack_cc = uVar5" (identifier "uStack_cc") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_c8 = uVar6;" (assignment_expression "uStack_c8 = uVar6" (identifier "uStack_c8") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "pcStack_c4 = pcVar34;" (assignment_expression "pcStack_c4 = pcVar34" (identifier "pcStack_c4") (= "=") (identifier "pcVar34")) (; ";")) (expression_statement "uVar15 = (**(code **)(pcVar33 + 0x33a23c))();" (assignment_expression "uVar15 = (**(code **)(pcVar33 + 0x33a23c))()" (identifier "uVar15") (= "=") (call_expression "(**(code **)(pcVar33 + 0x33a23c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a23c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x33a23c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x33a23c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x33a23c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x33a23c)" (( "(") (binary_expression "pcVar33 + 0x33a23c" (identifier "pcVar33") (+ "+") (number_literal "0x33a23c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);" (assignment_expression "uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a23c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x33a23c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x33a23c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x33a23c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x33a23c)" (( "(") (binary_expression "pcVar33 + 0x33a23c" (identifier "pcVar33") (+ "+") (number_literal "0x33a23c")) () ")"))))) () ")")) (argument_list "(pdVar17,uVar21)" (( "(") (identifier "pdVar17") (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339f9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339f9c)" (( "(") (binary_expression "pcVar33 + 0x339f9c" (identifier "pcVar33") (+ "+") (number_literal "0x339f9c")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" (if "if") (parenthesized_expression "(((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))))" (( "(") (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))" (( "(") (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" (( "(") (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339f9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339f9c)" (( "(") (binary_expression "pcVar33 + 0x339f9c" (identifier "pcVar33") (+ "+") (number_literal "0x339f9c")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))" (( "(") (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3))" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339f9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339f9c)" (( "(") (binary_expression "pcVar33 + 0x339f9c" (identifier "pcVar33") (+ "+") (number_literal "0x339f9c")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (, ",") (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339f9c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339f9c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339f9c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339f9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339f9c)" (( "(") (binary_expression "pcVar33 + 0x339f9c" (identifier "pcVar33") (+ "+") (number_literal "0x339f9c")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar33 + 0x339c24))(7);\n    uVar18 = uVar28;\n    if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }\n    iVar2 = (int)uVar18 >> 6;\n    if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339c24)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "uVar18 = uVar28;" (assignment_expression "uVar18 = uVar28" (identifier "uVar18") (= "=") (identifier "uVar28")) (; ";")) (if_statement "if ((int)uVar28 < 0) {\n      uVar18 = uVar28 + 0x3f;\n    }" (if "if") (parenthesized_expression "((int)uVar28 < 0)" (( "(") (binary_expression "(int)uVar28 < 0" (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar18 = uVar28 + 0x3f;\n    }" ({ "{") (expression_statement "uVar18 = uVar28 + 0x3f;" (assignment_expression "uVar18 = uVar28 + 0x3f" (identifier "uVar18") (= "=") (binary_expression "uVar28 + 0x3f" (identifier "uVar28") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "iVar2 = (int)uVar18 >> 6;" (assignment_expression "iVar2 = (int)uVar18 >> 6" (identifier "iVar2") (= "=") (binary_expression "(int)uVar18 >> 6" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "6"))) (; ";")) (if_statement "if (extraout_v1_03 < iVar2) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar28 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1_03 < iVar2)" (( "(") (binary_expression "extraout_v1_03 < iVar2" (identifier "extraout_v1_03") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339c24)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" (identifier "bVar1") (= "=") (binary_expression "extraout_v1_06 < 2" (identifier "extraout_v1_06") (< "<") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = (int)uVar28 < 0x80;\n    }" (else "else") (compound_statement "{\n      bVar1 = (int)uVar28 < 0x80;\n    }" ({ "{") (expression_statement "bVar1 = (int)uVar28 < 0x80;" (assignment_expression "bVar1 = (int)uVar28 < 0x80" (identifier "bVar1") (= "=") (binary_expression "(int)uVar28 < 0x80" (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28")) (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar2 = 1;\n    }" (if "if") (parenthesized_expression "((bool)(bVar1 ^ 1))" (( "(") (cast_expression "(bool)(bVar1 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar1 ^ 1)" (( "(") (binary_expression "bVar1 ^ 1" (identifier "bVar1") (^ "^") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar33 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }" ({ "{") (expression_statement "(**(code **)(pcVar33 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339c24)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (if_statement "if (extraout_v1_05 < iVar2) {\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" (if "if") (parenthesized_expression "(extraout_v1_05 < iVar2)" (( "(") (binary_expression "extraout_v1_05 < iVar2" (identifier "extraout_v1_05") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" ({ "{") (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006f8ac;" (goto "goto") (statement_identifier "LAB_0006f8ac") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar2 = 1;\n    }" (else "else") (compound_statement "{\n      iVar2 = 1;\n    }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" (else "else") (compound_statement "{\n    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }\n    uVar48 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" ({ "{") (expression_statement "uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);" (assignment_expression "uVar48 = (**(code **)(pcVar33 + 0x339c24))(7)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c24))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339c24)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar48")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }" (if "if") (parenthesized_expression "((uint)uVar48 < 2)" (( "(") (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar48")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        uVar48 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar34 = *(code **)(pcVar33 + 0x339c24);\n        if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }\n      }" ({ "{") (expression_statement "uVar48 = (*pcVar34)(7);" (assignment_expression "uVar48 = (*pcVar34)(7)" (identifier "uVar48") (= "=") (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar48 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar48")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006f60c;" (goto "goto") (statement_identifier "LAB_0006f60c") (; ";"))) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar48 < 2) {\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }" (if "if") (parenthesized_expression "((uint)uVar48 < 2)" (( "(") (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar48")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          iVar2 = 1;\n          goto LAB_0006f624;\n        }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0006f624;" (goto "goto") (statement_identifier "LAB_0006f624") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" (else "else") (compound_statement "{\nLAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);\n    }" ({ "{") (labeled_statement "LAB_0006f60c:\n      pcVar34 = *(code **)(pcVar33 + 0x339c24);" (statement_identifier "LAB_0006f60c") (: ":") (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339c24);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar48 = (*pcVar34)(7);" (assignment_expression "uVar48 = (*pcVar34)(7)" (identifier "uVar48") (= "=") (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)" (parenthesized_expression "((int)((ulonglong)uVar48 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar48 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar48")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)" (( "(") (comma_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339c24)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339c24)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c24)" (( "(") (binary_expression "pcVar33 + 0x339c24" (identifier "pcVar33") (+ "+") (number_literal "0x339c24")) () ")"))))) (, ",") (binary_expression "(uint)uVar48 < 2" (cast_expression "(uint)uVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar48")) (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\nLAB_0006f8ac:\n      (*pcVar34)(7);\n      iVar2 = extraout_v1_04;\n    }" ({ "{") (labeled_statement "LAB_0006f8ac:\n      (*pcVar34)(7);" (statement_identifier "LAB_0006f8ac") (: ":") (expression_statement "(*pcVar34)(7);" (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";"))) (expression_statement "iVar2 = extraout_v1_04;" (assignment_expression "iVar2 = extraout_v1_04" (identifier "iVar2") (= "=") (identifier "extraout_v1_04")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0006f624:\n  piVar22 = (int *)0x0;" (statement_identifier "LAB_0006f624") (: ":") (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" (identifier "piVar22") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "piVar30 = &iStack_120;" (assignment_expression "piVar30 = &iStack_120" (identifier "piVar30") (= "=") (pointer_expression "&iStack_120" (& "&") (identifier "iStack_120"))) (; ";")) (expression_statement "iStack_f4 = 1;" (assignment_expression "iStack_f4 = 1" (identifier "iStack_f4") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" (identifier "uStack_11c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_120 = 0;" (assignment_expression "iStack_120 = 0" (identifier "iStack_120") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" (identifier "uStack_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_118 = iVar3;" (assignment_expression "iStack_118 = iVar3" (identifier "iStack_118") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pdStack_114 = pdVar17;" (assignment_expression "pdStack_114 = pdVar17" (identifier "pdStack_114") (= "=") (identifier "pdVar17")) (; ";")) (expression_statement "pdStack_110 = pdVar16;" (assignment_expression "pdStack_110 = pdVar16" (identifier "pdStack_110") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "uStack_10c = uVar21;" (assignment_expression "uStack_10c = uVar21" (identifier "uStack_10c") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uStack_108 = uVar15;" (assignment_expression "uStack_108 = uVar15" (identifier "uStack_108") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uStack_104 = uVar5;" (assignment_expression "uStack_104 = uVar5" (identifier "uStack_104") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_fc = uVar27;" (assignment_expression "uStack_fc = uVar27" (identifier "uStack_fc") (= "=") (identifier "uVar27")) (; ";")) (expression_statement "uStack_f8 = uVar28;" (assignment_expression "uStack_f8 = uVar28" (identifier "uStack_f8") (= "=") (identifier "uVar28")) (; ";")) (expression_statement "(**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);" (call_expression "(**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339c80))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339c80)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339c80)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339c80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339c80)" (( "(") (binary_expression "pcVar33 + 0x339c80" (identifier "pcVar33") (+ "+") (number_literal "0x339c80")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x339420) + 0x2498" (pointer_expression "*(int *)(pcVar33 + 0x339420)" (* "*") (cast_expression "(int *)(pcVar33 + 0x339420)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x339420)" (( "(") (binary_expression "pcVar33 + 0x339420" (identifier "pcVar33") (+ "+") (number_literal "0x339420")) () ")")))) (+ "+") (number_literal "0x2498")) (, ",") (identifier "piVar30") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "iVar11 = iStack_f4;" (assignment_expression "iVar11 = iStack_f4" (identifier "iVar11") (= "=") (identifier "iStack_f4")) (; ";")) (expression_statement "uVar6 = uStack_11c;" (assignment_expression "uVar6 = uStack_11c" (identifier "uVar6") (= "=") (identifier "uStack_11c")) (; ";")) (expression_statement "iVar2 = iStack_120;" (assignment_expression "iVar2 = iStack_120" (identifier "iVar2") (= "=") (identifier "iStack_120")) (; ";")) (expression_statement "dVar35 = (double)CONCAT44(iStack_120,uStack_11c);" (assignment_expression "dVar35 = (double)CONCAT44(iStack_120,uStack_11c)" (identifier "dVar35") (= "=") (cast_expression "(double)CONCAT44(iStack_120,uStack_11c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iStack_120,uStack_11c)" (identifier "CONCAT44") (argument_list "(iStack_120,uStack_11c)" (( "(") (identifier "iStack_120") (, ",") (identifier "uStack_11c") () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar5);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3399dc))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x3399dc)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x3399dc)" (* "*") (cast_expression "(code **)(pcVar33 + 0x3399dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x3399dc)" (( "(") (binary_expression "pcVar33 + 0x3399dc" (identifier "pcVar33") (+ "+") (number_literal "0x3399dc")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar15);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar15)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3399dc))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x3399dc)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x3399dc)" (* "*") (cast_expression "(code **)(pcVar33 + 0x3399dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x3399dc)" (( "(") (binary_expression "pcVar33 + 0x3399dc" (identifier "pcVar33") (+ "+") (number_literal "0x3399dc")) () ")"))))) () ")")) (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (if_statement "if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" (if "if") (parenthesized_expression "(0.0 <= dVar35)" (( "(") (binary_expression "0.0 <= dVar35" (number_literal "0.0") (<= "<=") (identifier "dVar35")) () ")")) (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_128 = dVar35;\n  }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "dStack_128 = dVar35;" (assignment_expression "dStack_128 = dVar35" (identifier "dStack_128") (= "=") (identifier "dVar35")) (; ";")) (} "}")) (else_clause "else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" (else "else") (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_128 = -(double)CONCAT44(iVar2,uVar6);\n  }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1a78)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1a78" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x1a78")) () ")"))))) (; ";")) (expression_statement "dStack_128 = -(double)CONCAT44(iVar2,uVar6);" (assignment_expression "dStack_128 = -(double)CONCAT44(iVar2,uVar6)" (identifier "dStack_128") (= "=") (unary_expression "-(double)CONCAT44(iVar2,uVar6)" (- "-") (cast_expression "(double)CONCAT44(iVar2,uVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar2,uVar6)" (identifier "CONCAT44") (argument_list "(iVar2,uVar6)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar6") () ")")))))) (; ";")) (} "}")))) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }\n  else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x13f8")) () ")")))) (<= "<=") (identifier "dStack_128")) () ")")) (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;\n  }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;" (assignment_expression "dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35" (identifier "dVar44") (= "=") (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar35"))) (; ";")) (} "}")) (else_clause "else {\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" (else "else") (compound_statement "{\n    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);\n  }" ({ "{") (expression_statement "dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);" (assignment_expression "dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (identifier "dVar44") (= "=") (binary_expression "dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (identifier "dVar44") (/ "/") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x13f8)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x13f8")) () ")")))))) (; ";")) (} "}")))) (expression_statement "pdVar17 = pdVar16;" (assignment_expression "pdVar17 = pdVar16" (identifier "pdVar17") (= "=") (identifier "pdVar16")) (; ";")) (do_statement "do {\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  } while (pdVar16 + 0x41 != pdVar7);" (do "do") (compound_statement "{\n    pdVar7 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar7;\n  }" ({ "{") (expression_statement "pdVar7 = pdVar17 + 1;" (assignment_expression "pdVar7 = pdVar17 + 1" (identifier "pdVar7") (= "=") (binary_expression "pdVar17 + 1" (identifier "pdVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar17 = *pdVar17 * dVar44;" (assignment_expression "*pdVar17 = *pdVar17 * dVar44" (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) (= "=") (binary_expression "*pdVar17 * dVar44" (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) (* "*") (identifier "dVar44"))) (; ";")) (expression_statement "pdVar17 = pdVar7;" (assignment_expression "pdVar17 = pdVar7" (identifier "pdVar17") (= "=") (identifier "pdVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar16 + 0x41 != pdVar7)" (( "(") (binary_expression "pdVar16 + 0x41 != pdVar7" (binary_expression "pdVar16 + 0x41" (identifier "pdVar16") (+ "+") (number_literal "0x41")) (!= "!=") (identifier "pdVar7")) () ")")) (; ";")) (expression_statement "pdVar17 = (double *)0x0;" (assignment_expression "pdVar17 = (double *)0x0" (identifier "pdVar17") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (0 < *(int *)(iVar3 + 0x2c0)) {\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar3 + 0x2c0))" (( "(") (binary_expression "0 < *(int *)(iVar3 + 0x2c0)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar3 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c0)" (( "(") (binary_expression "iVar3 + 0x2c0" (identifier "iVar3") (+ "+") (number_literal "0x2c0")) () ")"))))) () ")")) (compound_statement "{\n    piVar22 = *(int **)(iVar3 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;\n    piVar10 = piVar22;\n    do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);\n    if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" ({ "{") (expression_statement "piVar22 = *(int **)(iVar3 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar3 + 0x2d0)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(iVar3 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar3 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x2d0)" (( "(") (binary_expression "iVar3 + 0x2d0" (identifier "iVar3") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;" (assignment_expression "piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3" (identifier "piVar30") (= "=") (binary_expression "piVar22 + *(int *)(iVar3 + 0x2c0) * 3" (identifier "piVar22") (+ "+") (binary_expression "*(int *)(iVar3 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar3 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c0)" (( "(") (binary_expression "iVar3 + 0x2c0" (identifier "iVar3") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "3")))) (; ";")) (expression_statement "piVar10 = piVar22;" (assignment_expression "piVar10 = piVar22" (identifier "piVar10") (= "=") (identifier "piVar22")) (; ";")) (do_statement "do {\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    } while (piVar10 != piVar30);" (do "do") (compound_statement "{\n      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar10 = piVar10 + 3;\n    }" ({ "{") (if_statement "if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" (if "if") (parenthesized_expression "((piVar22[*piVar10 * 3 + 1] & 2U) != 0)" (( "(") (binary_expression "(piVar22[*piVar10 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar22[*piVar10 * 3 + 1] & 2U)" (( "(") (binary_expression "piVar22[*piVar10 * 3 + 1] & 2U" (subscript_expression "piVar22[*piVar10 * 3 + 1]" (identifier "piVar22") ([ "[") (binary_expression "*piVar10 * 3 + 1" (binary_expression "*piVar10 * 3" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (& "&") (number_literal "2U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" ({ "{") (expression_statement "pdVar17 = (double *)((int)pdVar17 + 1);" (assignment_expression "pdVar17 = (double *)((int)pdVar17 + 1)" (identifier "pdVar17") (= "=") (cast_expression "(double *)((int)pdVar17 + 1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar17 + 1)" (( "(") (binary_expression "(int)pdVar17 + 1" (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar10 = piVar10 + 3;" (assignment_expression "piVar10 = piVar10 + 3" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 3" (identifier "piVar10") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar10 != piVar30)" (( "(") (binary_expression "piVar10 != piVar30" (identifier "piVar10") (!= "!=") (identifier "piVar30")) () ")")) (; ";")) (if_statement "if (pdVar17 != (double *)0x0) {\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" (if "if") (parenthesized_expression "(pdVar17 != (double *)0x0)" (( "(") (binary_expression "pdVar17 != (double *)0x0" (identifier "pdVar17") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      dVar35 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" ({ "{") (expression_statement "dVar35 = (double)(int)pdVar17;" (assignment_expression "dVar35 = (double)(int)pdVar17" (identifier "dVar35") (= "=") (cast_expression "(double)(int)pdVar17" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17")))) (; ";")) (if_statement "if ((int)pdVar17 < 0) {\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }" (if "if") (parenthesized_expression "((int)pdVar17 < 0)" (( "(") (binary_expression "(int)pdVar17 < 0" (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);\n      }" ({ "{") (expression_statement "dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);" (assignment_expression "dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" (identifier "dVar35") (= "=") (binary_expression "dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" (identifier "dVar35") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1418)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1418" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (goto_statement "goto LAB_0006f778;" (goto "goto") (statement_identifier "LAB_0006f778") (; ";")) (} "}"))) (} "}"))) (expression_statement "dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);" (assignment_expression "dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (identifier "dVar35") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3393c8) + 0x1438)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar33 + 0x3393c8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3393c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3393c8)" (( "(") (binary_expression "pcVar33 + 0x3393c8" (identifier "pcVar33") (+ "+") (number_literal "0x3393c8")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (labeled_statement "LAB_0006f778:\n  iVar2 = *piVar29;" (statement_identifier "LAB_0006f778") (: ":") (expression_statement "iVar2 = *piVar29;" (assignment_expression "iVar2 = *piVar29" (identifier "iVar2") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";"))) (expression_statement "pdVar16[0x40] = pdVar16[0x40] / dVar35;" (assignment_expression "pdVar16[0x40] = pdVar16[0x40] / dVar35" (subscript_expression "pdVar16[0x40]" (identifier "pdVar16") ([ "[") (number_literal "0x40") (] "]")) (= "=") (binary_expression "pdVar16[0x40] / dVar35" (subscript_expression "pdVar16[0x40]" (identifier "pdVar16") ([ "[") (number_literal "0x40") (] "]")) (/ "/") (identifier "dVar35"))) (; ";")) (if_statement "if (iStack_ec == iVar2) {\n    return iVar11;\n  }" (if "if") (parenthesized_expression "(iStack_ec == iVar2)" (( "(") (binary_expression "iStack_ec == iVar2" (identifier "iStack_ec") (== "==") (identifier "iVar2")) () ")")) (compound_statement "{\n    return iVar11;\n  }" ({ "{") (return_statement "return iVar11;" (return "return") (identifier "iVar11") (; ";")) (} "}"))) (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x339b4c);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x339b4c)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339b4c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339b4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339b4c)" (( "(") (binary_expression "pcVar33 + 0x339b4c" (identifier "pcVar33") (+ "+") (number_literal "0x339b4c")) () ")"))))) (; ";")) (expression_statement "iVar2 = iStack_ec;" (assignment_expression "iVar2 = iStack_ec" (identifier "iVar2") (= "=") (identifier "iStack_ec")) (; ";")) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar2 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar2 + 0x1c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7])" (( "(") (binary_expression "*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]" (pointer_expression "*(uint *)(iVar2 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (cast_expression "(uint)piVar30[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar30[7]" (identifier "piVar30") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n    uVar18 = piVar30[7];\n  }" ({ "{") (expression_statement "uVar18 = piVar30[7];" (assignment_expression "uVar18 = piVar30[7]" (identifier "uVar18") (= "=") (subscript_expression "piVar30[7]" (identifier "piVar30") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x18)" (* "*") (cast_expression "(uint *)(iVar2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar4 = piVar30[6];\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6])" (( "(") (binary_expression "*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]" (pointer_expression "*(uint *)(iVar2 + 0x18)" (* "*") (cast_expression "(uint *)(iVar2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (cast_expression "(uint)piVar30[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar30[6]" (identifier "piVar30") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n    uVar4 = piVar30[6];\n  }" ({ "{") (expression_statement "uVar4 = piVar30[6];" (assignment_expression "uVar4 = piVar30[6]" (identifier "uVar4") (= "=") (subscript_expression "piVar30[6]" (identifier "piVar30") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar15 = (**(code **)(pcVar33 + 0x339e44))();" (assignment_expression "uVar15 = (**(code **)(pcVar33 + 0x339e44))()" (identifier "uVar15") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339e44))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x339e44))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339e44)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339e44)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339e44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339e44)" (( "(") (binary_expression "pcVar33 + 0x339e44" (identifier "pcVar33") (+ "+") (number_literal "0x339e44")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);" (assignment_expression "uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339e44))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339e44)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339e44)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339e44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339e44)" (( "(") (binary_expression "pcVar33 + 0x339e44" (identifier "pcVar33") (+ "+") (number_literal "0x339e44")) () ")"))))) () ")")) (argument_list "(piVar30,piVar22)" (( "(") (identifier "piVar30") (, ",") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if ((int)uVar18 < 1) {\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" (if "if") (parenthesized_expression "((int)uVar18 < 1)" (( "(") (binary_expression "(int)uVar18 < 1" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar3 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }" ({ "{") (expression_statement "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iStack_1b0") (= "=") (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" (* "*") (cast_expression "(int *)(pcVar33 + 0x338fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x338fd0)" (( "(") (binary_expression "pcVar33 + 0x338fd0" (identifier "pcVar33") (+ "+") (number_literal "0x338fd0")) () ")"))))) (; ";")) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" (identifier "dVar46") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar35 = dVar46;" (assignment_expression "dVar35 = dVar46" (identifier "dVar35") (= "=") (identifier "dVar46")) (; ";")) (expression_statement "dVar44 = dVar46;" (assignment_expression "dVar44 = dVar46" (identifier "dVar44") (= "=") (identifier "dVar46")) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" (else "else") (compound_statement "{\n    iVar3 = *(int *)(pcVar33 + 0x338fd0);\n    iVar11 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar3 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar3 = 1;\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar3 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" (* "*") (cast_expression "(int *)(pcVar33 + 0x338fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x338fd0)" (( "(") (binary_expression "pcVar33 + 0x338fd0" (identifier "pcVar33") (+ "+") (number_literal "0x338fd0")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar11 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" (* "*") (cast_expression "(int *)(pcVar33 + 0x338fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x338fd0)" (( "(") (binary_expression "pcVar33 + 0x338fd0" (identifier "pcVar33") (+ "+") (number_literal "0x338fd0")) () ")"))))) (; ";")) (expression_statement "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1b0 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iStack_1b0") (= "=") (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" (* "*") (cast_expression "(int *)(pcVar33 + 0x338fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x338fd0)" (( "(") (binary_expression "pcVar33 + 0x338fd0" (identifier "pcVar33") (+ "+") (number_literal "0x338fd0")) () ")"))))) (; ";")) (expression_statement "dVar47 = *(double *)(iVar3 + 0x1438);" (assignment_expression "dVar47 = *(double *)(iVar3 + 0x1438)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(iVar3 + 0x1438)" (* "*") (cast_expression "(double *)(iVar3 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1438)" (( "(") (binary_expression "iVar3 + 0x1438" (identifier "iVar3") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708)" (identifier "uVar45") (= "=") (binary_expression "(ulonglong)*(uint *)(iVar11 + 0x3708)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(iVar11 + 0x3708)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x3708)" (( "(") (binary_expression "iVar11 + 0x3708" (identifier "iVar11") (+ "+") (number_literal "0x3708")) () ")"))))) (; ";")) (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" (identifier "dVar46") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339d4c);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339d4c)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339d4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339d4c)" (( "(") (binary_expression "pcVar33 + 0x339d4c" (identifier "pcVar33") (+ "+") (number_literal "0x339d4c")) () ")"))))) (; ";")) (expression_statement "dVar35 = dVar46;" (assignment_expression "dVar35 = dVar46" (identifier "dVar35") (= "=") (identifier "dVar46")) (; ";")) (expression_statement "dVar44 = dVar46;" (assignment_expression "dVar44 = dVar46" (identifier "dVar44") (= "=") (identifier "dVar46")) (; ";")) (expression_statement "dVar37 = dVar47;" (assignment_expression "dVar37 = dVar47" (identifier "dVar37") (= "=") (identifier "dVar47")) (; ";")) (do_statement "do {\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);" (do "do") (compound_statement "{\n      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);\n      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    }" ({ "{") (expression_statement "pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);" (assignment_expression "pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" (identifier "pfVar8") (= "=") (cast_expression "(float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(uVar15,0,uVar28,uVar4,1,piVar22)" (( "(") (identifier "uVar15") (, ",") (number_literal "0") (, ",") (identifier "uVar28") (, ",") (identifier "uVar4") (, ",") (number_literal "1") (, ",") (identifier "piVar22") () ")"))))) (; ";")) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x339d4c))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x339d4c)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339d4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339d4c)" (( "(") (binary_expression "pcVar33 + 0x339d4c" (identifier "pcVar33") (+ "+") (number_literal "0x339d4c")) () ")"))))) () ")")) (argument_list "(uVar5,0,uVar28,uVar4,1,piVar22)" (( "(") (identifier "uVar5") (, ",") (number_literal "0") (, ",") (identifier "uVar28") (, ",") (identifier "uVar4") (, ",") (number_literal "1") (, ",") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }" (if "if") (parenthesized_expression "((pfVar8 == (float *)0x0) || (iVar9 == 0))" (( "(") (binary_expression "(pfVar8 == (float *)0x0) || (iVar9 == 0)" (parenthesized_expression "(pfVar8 == (float *)0x0)" (( "(") (binary_expression "pfVar8 == (float *)0x0" (identifier "pfVar8") (== "==") (cast_expression "(float *)0x0" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar3 = 0;\n        goto LAB_0006fc88;\n      }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0006fc88;" (goto "goto") (statement_identifier "LAB_0006fc88") (; ";")) (} "}"))) (if_statement "if (0 < (int)uVar4) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }" (if "if") (parenthesized_expression "(0 < (int)uVar4)" (( "(") (binary_expression "0 < (int)uVar4" (number_literal "0") (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1b0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar3 + 0x1438);\n        fVar39 = *(float *)(iVar11 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);\n      }" ({ "{") (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" (identifier "uVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar29 = *(int **)(iVar2 + 0x2d0);" (assignment_expression "piVar29 = *(int **)(iVar2 + 0x2d0)" (identifier "piVar29") (= "=") (pointer_expression "*(int **)(iVar2 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar2 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x2d0)" (( "(") (binary_expression "iVar2 + 0x2d0" (identifier "iVar2") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "dVar40 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1b0 + 0x1440)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" (* "*") (cast_expression "(double *)(iStack_1b0 + 0x1440)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1b0 + 0x1440)" (( "(") (binary_expression "iStack_1b0 + 0x1440" (identifier "iStack_1b0") (+ "+") (number_literal "0x1440")) () ")"))))) (; ";")) (expression_statement "iVar31 = piVar29[0x13];" (assignment_expression "iVar31 = piVar29[0x13]" (identifier "iVar31") (= "=") (subscript_expression "piVar29[0x13]" (identifier "piVar29") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "dVar43 = *(double *)(iVar3 + 0x1438);" (assignment_expression "dVar43 = *(double *)(iVar3 + 0x1438)" (identifier "dVar43") (= "=") (pointer_expression "*(double *)(iVar3 + 0x1438)" (* "*") (cast_expression "(double *)(iVar3 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1438)" (( "(") (binary_expression "iVar3 + 0x1438" (identifier "iVar3") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "fVar39 = *(float *)(iVar11 + 0x3708);" (assignment_expression "fVar39 = *(float *)(iVar11 + 0x3708)" (identifier "fVar39") (= "=") (pointer_expression "*(float *)(iVar11 + 0x3708)" (* "*") (cast_expression "(float *)(iVar11 + 0x3708)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x3708)" (( "(") (binary_expression "iVar11 + 0x3708" (identifier "iVar11") (+ "+") (number_literal "0x3708")) () ")"))))) (; ";")) (do_statement "do {\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar4);" (do "do") (compound_statement "{\n          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }\n          dVar38 = dVar37;\n          if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }\n          iVar26 = *(int *)(iVar2 + 0x2c0);\n          if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar8 = pfVar8 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        }" ({ "{") (while_statement "while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }" (while "while") (parenthesized_expression "(((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))))" (( "(") (parenthesized_expression "((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))" (( "(") (binary_expression "(iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (parenthesized_expression "(iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39))" (( "(") (binary_expression "iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)" (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pfVar8[piVar29[0x14]] <= fVar39)" (( "(") (binary_expression "pfVar8[piVar29[0x14]] <= fVar39" (subscript_expression "pfVar8[piVar29[0x14]]" (identifier "pfVar8") ([ "[") (subscript_expression "piVar29[0x14]" (identifier "piVar29") ([ "[") (number_literal "0x14") (] "]")) (] "]")) (<= "<=") (identifier "fVar39")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (( "(") (parenthesized_expression "(iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))" (( "(") (comma_expression "iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (assignment_expression "iVar23 = piVar30[0xb4]" (identifier "iVar23") (= "=") (subscript_expression "piVar30[0xb4]" (identifier "piVar30") ([ "[") (number_literal "0xb4") (] "]"))) (, ",") (binary_expression "*(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (binary_expression "*(int *)(iVar23 + 0x4c) != 0" (pointer_expression "*(int *)(iVar23 + 0x4c)" (* "*") (cast_expression "(int *)(iVar23 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x4c)" (( "(") (binary_expression "iVar23 + 0x4c" (identifier "iVar23") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)" (( "(") (binary_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar23 + 0x50) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar23 + 0x50) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar23 + 0x50) * 4" (pointer_expression "*(int *)(iVar23 + 0x50)" (* "*") (cast_expression "(int *)(iVar23 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x50)" (( "(") (binary_expression "iVar23 + 0x50" (identifier "iVar23") (+ "+") (number_literal "0x50")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (<= "<=") (cast_expression "(float)uVar45" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar45"))) () ")")))) () ")")) () ")"))) () ")")) () ")")) (compound_statement "{\n            uVar27 = uVar27 + 1;\n            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar4) goto LAB_0006fc4c;\n          }" ({ "{") (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);" (assignment_expression "pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0)" (identifier "pfVar8") (= "=") (binary_expression "pfVar8 + *(int *)(iVar2 + 0x2c0)" (identifier "pfVar8") (+ "+") (pointer_expression "*(int *)(iVar2 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c0)" (( "(") (binary_expression "iVar2 + 0x2c0" (identifier "iVar2") (+ "+") (number_literal "0x2c0")) () ")")))))) (; ";")) (expression_statement "iVar9 = iVar9 + piVar30[0xb0] * 4;" (assignment_expression "iVar9 = iVar9 + piVar30[0xb0] * 4" (identifier "iVar9") (= "=") (binary_expression "iVar9 + piVar30[0xb0] * 4" (identifier "iVar9") (+ "+") (binary_expression "piVar30[0xb0] * 4" (subscript_expression "piVar30[0xb0]" (identifier "piVar30") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (uVar27 == uVar4) goto LAB_0006fc4c;" (if "if") (parenthesized_expression "(uVar27 == uVar4)" (( "(") (binary_expression "uVar27 == uVar4" (identifier "uVar27") (== "==") (identifier "uVar4")) () ")")) (goto_statement "goto LAB_0006fc4c;" (goto "goto") (statement_identifier "LAB_0006fc4c") (; ";"))) (} "}"))) (expression_statement "dVar36 = dVar43;" (assignment_expression "dVar36 = dVar43" (identifier "dVar36") (= "=") (identifier "dVar43")) (; ";")) (if_statement "if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }" (if "if") (parenthesized_expression "(piVar29[0xd] != 0)" (( "(") (binary_expression "piVar29[0xd] != 0" (subscript_expression "piVar29[0xd]" (identifier "piVar29") ([ "[") (number_literal "0xd") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;\n          }" ({ "{") (expression_statement "dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;" (assignment_expression "dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40" (identifier "dVar36") (= "=") (binary_expression "(double)pfVar8[piVar29[0xe]] * dVar40" (cast_expression "(double)pfVar8[piVar29[0xe]]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "pfVar8[piVar29[0xe]]" (identifier "pfVar8") ([ "[") (subscript_expression "piVar29[0xe]" (identifier "piVar29") ([ "[") (number_literal "0xe") (] "]")) (] "]"))) (* "*") (identifier "dVar40"))) (; ";")) (} "}"))) (expression_statement "dVar38 = dVar37;" (assignment_expression "dVar38 = dVar37" (identifier "dVar38") (= "=") (identifier "dVar37")) (; ";")) (if_statement "if (*(int *)(iVar23 + 0x34) != 0) {\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar23 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar23 + 0x34) != 0" (pointer_expression "*(int *)(iVar23 + 0x34)" (* "*") (cast_expression "(int *)(iVar23 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x34)" (( "(") (binary_expression "iVar23 + 0x34" (identifier "iVar23") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;\n          }" ({ "{") (expression_statement "dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;" (assignment_expression "dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40" (identifier "dVar38") (= "=") (binary_expression "(double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40" (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar23 + 0x38) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar23 + 0x38) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar23 + 0x38) * 4" (pointer_expression "*(int *)(iVar23 + 0x38)" (* "*") (cast_expression "(int *)(iVar23 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x38)" (( "(") (binary_expression "iVar23 + 0x38" (identifier "iVar23") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar40"))) (; ";")) (} "}"))) (expression_statement "iVar26 = *(int *)(iVar2 + 0x2c0);" (assignment_expression "iVar26 = *(int *)(iVar2 + 0x2c0)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(iVar2 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c0)" (( "(") (binary_expression "iVar2 + 0x2c0" (identifier "iVar2") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (if_statement "if (0 < iVar26) {\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" (if "if") (parenthesized_expression "(0 < iVar26)" (( "(") (binary_expression "0 < iVar26" (number_literal "0") (< "<") (identifier "iVar26")) () ")")) (compound_statement "{\n            pdVar16 = pdVar17;\n            piVar10 = piVar29;\n            pfVar19 = pfVar8;\n            do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" ({ "{") (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" (identifier "pdVar16") (= "=") (identifier "pdVar17")) (; ";")) (expression_statement "piVar10 = piVar29;" (assignment_expression "piVar10 = piVar29" (identifier "piVar10") (= "=") (identifier "piVar29")) (; ";")) (expression_statement "pfVar19 = pfVar8;" (assignment_expression "pfVar19 = pfVar8" (identifier "pfVar19") (= "=") (identifier "pfVar8")) (; ";")) (do_statement "do {\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);" (do "do") (compound_statement "{\n              iVar24 = *piVar10;\n              iVar12 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }\n              pdVar16 = pdVar16 + 1;\n              piVar10 = piVar10 + 3;\n              pfVar19 = pfVar19 + 1;\n            }" ({ "{") (expression_statement "iVar24 = *piVar10;" (assignment_expression "iVar24 = *piVar10" (identifier "iVar24") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "iVar12 = iVar23 + iVar24 * 0xc;" (assignment_expression "iVar12 = iVar23 + iVar24 * 0xc" (identifier "iVar12") (= "=") (binary_expression "iVar23 + iVar24 * 0xc" (identifier "iVar23") (+ "+") (binary_expression "iVar24 * 0xc" (identifier "iVar24") (* "*") (number_literal "0xc")))) (; ";")) (if_statement "if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }" (if "if") (parenthesized_expression "(((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0))" (( "(") (binary_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)" (parenthesized_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))" (( "(") (binary_expression "(piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0)" (parenthesized_expression "(piVar29[iVar24 * 3 + 1] != 0)" (( "(") (binary_expression "piVar29[iVar24 * 3 + 1] != 0" (subscript_expression "piVar29[iVar24 * 3 + 1]" (identifier "piVar29") ([ "[") (binary_expression "iVar24 * 3 + 1" (binary_expression "iVar24 * 3" (identifier "iVar24") (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0)" (( "(") (comma_expression "uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar12 + 4)" (identifier "uVar25") (= "=") (pointer_expression "*(uint *)(iVar12 + 4)" (* "*") (cast_expression "(uint *)(iVar12 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "uVar25 != 0" (identifier "uVar25") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar25 & 2) != 0)" (( "(") (binary_expression "(uVar25 & 2) != 0" (parenthesized_expression "(uVar25 & 2)" (( "(") (binary_expression "uVar25 & 2" (identifier "uVar25") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);\n                if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }\n                dVar35 = dVar35 + dVar47;\n                dVar42 = ABS(dVar41);\n                dVar46 = dVar42 * dVar42 + dVar46;\n                *pdVar16 = *pdVar16 + dVar42;\n                pdVar17[0x40] = pdVar17[0x40] + dVar42;\n                if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }\n              }" ({ "{") (expression_statement "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);" (assignment_expression "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" (identifier "dVar41") (= "=") (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar12 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar12 + 8) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar12 + 8) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (iVar24 == 4) {\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }\n                else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" (if "if") (parenthesized_expression "(iVar24 == 4)" (( "(") (binary_expression "iVar24 == 4" (identifier "iVar24") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                  dVar41 = (double)*pfVar19 - dVar41;\n                }" ({ "{") (expression_statement "dVar41 = (double)*pfVar19 - dVar41;" (assignment_expression "dVar41 = (double)*pfVar19 - dVar41" (identifier "dVar41") (= "=") (binary_expression "(double)*pfVar19 - dVar41" (cast_expression "(double)*pfVar19" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar19" (* "*") (identifier "pfVar19"))) (- "-") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" (else "else") (compound_statement "{\n                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;\n                }" ({ "{") (expression_statement "dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;" (assignment_expression "dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41" (identifier "dVar41") (= "=") (binary_expression "dVar36 * (double)*pfVar19 - dVar38 * dVar41" (binary_expression "dVar36 * (double)*pfVar19" (identifier "dVar36") (* "*") (cast_expression "(double)*pfVar19" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar19" (* "*") (identifier "pfVar19")))) (- "-") (binary_expression "dVar38 * dVar41" (identifier "dVar38") (* "*") (identifier "dVar41")))) (; ";")) (} "}")))) (expression_statement "dVar35 = dVar35 + dVar47;" (assignment_expression "dVar35 = dVar35 + dVar47" (identifier "dVar35") (= "=") (binary_expression "dVar35 + dVar47" (identifier "dVar35") (+ "+") (identifier "dVar47"))) (; ";")) (expression_statement "dVar42 = ABS(dVar41);" (assignment_expression "dVar42 = ABS(dVar41)" (identifier "dVar42") (= "=") (call_expression "ABS(dVar41)" (identifier "ABS") (argument_list "(dVar41)" (( "(") (identifier "dVar41") () ")")))) (; ";")) (expression_statement "dVar46 = dVar42 * dVar42 + dVar46;" (assignment_expression "dVar46 = dVar42 * dVar42 + dVar46" (identifier "dVar46") (= "=") (binary_expression "dVar42 * dVar42 + dVar46" (binary_expression "dVar42 * dVar42" (identifier "dVar42") (* "*") (identifier "dVar42")) (+ "+") (identifier "dVar46"))) (; ";")) (expression_statement "*pdVar16 = *pdVar16 + dVar42;" (assignment_expression "*pdVar16 = *pdVar16 + dVar42" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (= "=") (binary_expression "*pdVar16 + dVar42" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (+ "+") (identifier "dVar42"))) (; ";")) (expression_statement "pdVar17[0x40] = pdVar17[0x40] + dVar42;" (assignment_expression "pdVar17[0x40] = pdVar17[0x40] + dVar42" (subscript_expression "pdVar17[0x40]" (identifier "pdVar17") ([ "[") (number_literal "0x40") (] "]")) (= "=") (binary_expression "pdVar17[0x40] + dVar42" (subscript_expression "pdVar17[0x40]" (identifier "pdVar17") ([ "[") (number_literal "0x40") (] "]")) (+ "+") (identifier "dVar42"))) (; ";")) (if_statement "if (dVar44 < dVar42) {\n                  dVar44 = ABS(dVar41);\n                }" (if "if") (parenthesized_expression "(dVar44 < dVar42)" (( "(") (binary_expression "dVar44 < dVar42" (identifier "dVar44") (< "<") (identifier "dVar42")) () ")")) (compound_statement "{\n                  dVar44 = ABS(dVar41);\n                }" ({ "{") (expression_statement "dVar44 = ABS(dVar41);" (assignment_expression "dVar44 = ABS(dVar41)" (identifier "dVar44") (= "=") (call_expression "ABS(dVar41)" (identifier "ABS") (argument_list "(dVar41)" (( "(") (identifier "dVar41") () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pdVar16 = pdVar16 + 1;" (assignment_expression "pdVar16 = pdVar16 + 1" (identifier "pdVar16") (= "=") (binary_expression "pdVar16 + 1" (identifier "pdVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar10 = piVar10 + 3;" (assignment_expression "piVar10 = piVar10 + 3" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 3" (identifier "piVar10") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pfVar19 = pfVar19 + 1;" (assignment_expression "pfVar19 = pfVar19 + 1" (identifier "pfVar19") (= "=") (binary_expression "pfVar19 + 1" (identifier "pfVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar16 != pdVar17 + iVar26)" (( "(") (binary_expression "pdVar16 != pdVar17 + iVar26" (identifier "pdVar16") (!= "!=") (binary_expression "pdVar17 + iVar26" (identifier "pdVar17") (+ "+") (identifier "iVar26"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar8 = pfVar8 + iVar26;" (assignment_expression "pfVar8 = pfVar8 + iVar26" (identifier "pfVar8") (= "=") (binary_expression "pfVar8 + iVar26" (identifier "pfVar8") (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "iVar9 = iVar9 + piVar30[0xb0] * 4;" (assignment_expression "iVar9 = iVar9 + piVar30[0xb0] * 4" (identifier "iVar9") (= "=") (binary_expression "iVar9 + piVar30[0xb0] * 4" (identifier "iVar9") (+ "+") (binary_expression "piVar30[0xb0] * 4" (subscript_expression "piVar30[0xb0]" (identifier "piVar30") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar27 != uVar4)" (( "(") (binary_expression "uVar27 != uVar4" (identifier "uVar27") (!= "!=") (identifier "uVar4")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0006fc4c:\n      uVar28 = uVar28 + 1;" (statement_identifier "LAB_0006fc4c") (: ":") (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" (identifier "uVar28") (= "=") (binary_expression "uVar28 + 1" (identifier "uVar28") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pcVar34 = *(code **)(pcVar33 + 0x339d4c);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + 0x339d4c)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(pcVar33 + 0x339d4c)" (* "*") (cast_expression "(code **)(pcVar33 + 0x339d4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x339d4c)" (( "(") (binary_expression "pcVar33 + 0x339d4c" (identifier "pcVar33") (+ "+") (number_literal "0x339d4c")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar28 != uVar18)" (( "(") (binary_expression "uVar28 != uVar18" (identifier "uVar28") (!= "!=") (identifier "uVar18")) () ")")) (; ";")) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar5);" (statement_identifier "LAB_0006fc88") (: ":") (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar5);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3395e4))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x3395e4)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x3395e4)" (* "*") (cast_expression "(code **)(pcVar33 + 0x3395e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x3395e4)" (( "(") (binary_expression "pcVar33 + 0x3395e4" (identifier "pcVar33") (+ "+") (number_literal "0x3395e4")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar15);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar15)" (parenthesized_expression "(**(code **)(pcVar33 + 0x3395e4))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x3395e4)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x3395e4)" (* "*") (cast_expression "(code **)(pcVar33 + 0x3395e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x3395e4)" (( "(") (binary_expression "pcVar33 + 0x3395e4" (identifier "pcVar33") (+ "+") (number_literal "0x3395e4")) () ")"))))) () ")")) (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "dVar37 = *(double *)(iStack_1b0 + 0x1440);" (assignment_expression "dVar37 = *(double *)(iStack_1b0 + 0x1440)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(iStack_1b0 + 0x1440)" (* "*") (cast_expression "(double *)(iStack_1b0 + 0x1440)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1b0 + 0x1440)" (( "(") (binary_expression "iStack_1b0 + 0x1440" (identifier "iStack_1b0") (+ "+") (number_literal "0x1440")) () ")"))))) (; ";")) (expression_statement "dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x338fd0) + 0x3700)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x338fd0) + 0x3700" (pointer_expression "*(int *)(pcVar33 + 0x338fd0)" (* "*") (cast_expression "(int *)(pcVar33 + 0x338fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x338fd0)" (( "(") (binary_expression "pcVar33 + 0x338fd0" (identifier "pcVar33") (+ "+") (number_literal "0x338fd0")) () ")")))) (+ "+") (number_literal "0x3700")) () ")"))))) (; ";")) (expression_statement "*(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;" (assignment_expression "*(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35" (pointer_expression "*(double *)(iVar2 + 0x2d8)" (* "*") (cast_expression "(double *)(iVar2 + 0x2d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2d8)" (( "(") (binary_expression "iVar2 + 0x2d8" (identifier "iVar2") (+ "+") (number_literal "0x2d8")) () ")")))) (= "=") (binary_expression "pdVar17[0x40] / dVar35" (subscript_expression "pdVar17[0x40]" (identifier "pdVar17") ([ "[") (number_literal "0x40") (] "]")) (/ "/") (identifier "dVar35"))) (; ";")) (expression_statement "*(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;" (assignment_expression "*(double *)(iVar2 + 0x2e8) = dVar44 * dVar37" (pointer_expression "*(double *)(iVar2 + 0x2e8)" (* "*") (cast_expression "(double *)(iVar2 + 0x2e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2e8)" (( "(") (binary_expression "iVar2 + 0x2e8" (identifier "iVar2") (+ "+") (number_literal "0x2e8")) () ")")))) (= "=") (binary_expression "dVar44 * dVar37" (identifier "dVar44") (* "*") (identifier "dVar37"))) (; ";")) (expression_statement "*(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;" (assignment_expression "*(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35" (pointer_expression "*(double *)(iVar2 + 0x2e0)" (* "*") (cast_expression "(double *)(iVar2 + 0x2e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2e0)" (( "(") (binary_expression "iVar2 + 0x2e0" (identifier "iVar2") (+ "+") (number_literal "0x2e0")) () ")")))) (= "=") (binary_expression "(dVar46 * dVar47) / dVar35" (parenthesized_expression "(dVar46 * dVar47)" (( "(") (binary_expression "dVar46 * dVar47" (identifier "dVar46") (* "*") (identifier "dVar47")) () ")")) (/ "/") (identifier "dVar35"))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) 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 (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)))))))) alternative: (else_clause (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (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: (identifier) right: (identifier))) consequence: (compound_statement (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 (identifier) (identifier) (identifier))))) (return_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 (identifier) (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 (identifier) (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: (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) (identifier))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (return_statement (identifier))))))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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))))))) (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: (primitive_type) 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: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (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))))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (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: (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: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (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)))))))))))))) (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: (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: (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))))))) 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: (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: (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: (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))))))) 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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (labeled_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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 (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (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: (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: (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))))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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))))))) 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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (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) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (number_literal)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) 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: (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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (labeled_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (identifier))) consequence: (compound_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: (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: (identifier))))) alternative: (else_clause (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) 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))))))) 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 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (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)))))))))) (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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (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) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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) (number_literal) (identifier) (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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: (primitive_type) 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: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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))))))) 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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (binary_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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (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 (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (return_statement (identifier)))))

int MASKED(int param_1,int param_2,undefined4 param_3)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  double *pdVar7;
  float *pfVar8;
  int iVar9;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int *piVar10;
  int extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int iVar11;
  int iVar12;
  undefined *puVar13;
  undefined *puVar14;
  undefined4 uVar15;
  double *pdVar16;
  double *pdVar17;
  uint uVar18;
  float *pfVar19;
  undefined *puVar20;
  undefined4 uVar21;
  int *piVar22;
  int iVar23;
  int iVar24;
  uint uVar25;
  int iVar26;
  uint uVar27;
  int unaff_s0;
  uint uVar28;
  int *piVar29;
  int *piVar30;
  int iVar31;
  undefined *puVar32;
  code *pcVar33;
  code *pcVar34;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  float fVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  ulonglong uVar45;
  double dVar46;
  double dVar47;
  undefined8 uVar48;
  int iStack_1b0;
  double dStack_128;
  int iStack_120;
  undefined4 uStack_11c;
  int iStack_118;
  double *pdStack_114;
  double *pdStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  uint uStack_fc;
  uint uStack_f8;
  int iStack_f4;
  int iStack_ec;
  int iStack_e8;
  undefined *puStack_e4;
  uint uStack_e0;
  undefined *puStack_dc;
  uint uStack_d8;
  int *piStack_d4;
  undefined4 uStack_d0;
  undefined4 uStack_cc;
  undefined4 uStack_c8;
  code *pcStack_c4;
  undefined *puStack_b0;
  double *pdStack_a4;
  double dStack_a0;
  undefined *puStack_98;
  undefined *puStack_94;
  undefined4 uStack_90;
  undefined *puStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  uint uStack_80;
  uint uStack_7c;
  int iStack_78;
  int iStack_6c;
  int iStack_68;
  
  if (param_1 == 0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0xdd0,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
               0x5e5,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010);
  }
  else {
    unaff_s0 = param_1;
    if (*(int *)(param_1 + 0x336c) == -0x54535255) {
      if (*(int *)(param_1 + 0x3350) == 0) {
        iVar2 = *(int *)(param_1 + 4);
      }
      else {
        (*(code *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x402c,0x5e8);
        iVar2 = *(int *)(param_1 + 4);
      }
      if (iVar2 == param_2) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,param_2,param_3);
        return iVar2;
      }
      (*(code *)PTR_DeleteImageProfile_003a9828)
                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5890);
      (*(code *)PTR_DeleteImageProfile_003a9828)
                (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x588c);
      if (param_2 == 0) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (*(code *)PTR_SetImageColorspace_003a8d40)(param_1,0,param_3);
        return iVar2;
      }
      if (1 < param_2 - 0x17U) {
        if (*(int *)(param_1 + 4) - 0x17U < 2) {
          iVar2 = 1;
        }
        else {
          iVar2 = FUN_0006b9c8(param_1,param_3);
          if (iVar2 == 0) {
            return 0;
          }
        }
        iVar3 = FUN_0006d178(param_1,param_2,param_3);
        if (iVar3 == 0) {
          return 0;
        }
        return iVar2;
      }
      iVar2 = FUN_0006b9c8(param_1,param_3);
      return iVar2;
    }
  }
  uVar15 = 0x5e6;
  puVar20 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x4010;
  puVar14 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;
  puVar13 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784;
  puVar32 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)();
  puStack_b0 = puVar32 + 0x3416c0;
  dVar35 = *(double *)(puVar14 + 0x248);
  dVar44 = *(double *)(puVar13 + 0x248);
  piVar30 = *(int **)(puVar32 + 0x33a040);
  iStack_6c = *piVar30;
  if (dVar35 < dVar44) {
    iVar2 = *(int *)(puVar32 + 0x3396f8);
    if (dVar44 <= *(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    dVar44 = dVar44 * dVar44;
  }
  else {
    iVar2 = *(int *)(puVar32 + 0x3396f8);
    if (*(double *)(*(int *)(puVar32 + 0x3396f8) + -0x5ac8) < dVar35) {
      if (dVar35 < dVar44) goto LAB_0006f470;
      dVar44 = dVar35 * dVar35;
    }
    else {
LAB_0006f270:
      dVar44 = *(double *)(iVar2 + -0x5ad0);
    }
  }
  uVar18 = *(uint *)(puVar13 + 0x1c);
  if (*(uint *)(puVar13 + 0x1c) <= *(uint *)(puVar14 + 0x1c)) {
    uVar18 = *(uint *)(puVar14 + 0x1c);
  }
  uVar4 = *(uint *)(puVar13 + 0x18);
  if (*(uint *)(puVar13 + 0x18) <= *(uint *)(puVar14 + 0x18)) {
    uVar4 = *(uint *)(puVar14 + 0x18);
  }
  iStack_68 = unaff_s0;
  uVar5 = (**(code **)(puVar32 + 0x33a564))(puVar13,puVar20);
  uVar6 = (**(code **)(puStack_b0 + -0x715c))(puVar14,puVar20);
  iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13);
  if (((iVar2 == 4) || (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)) &&
     ((iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 4 ||
      (iVar2 = (**(code **)(puStack_b0 + -0x73fc))(puVar13), iVar2 == 3)))) {
    (**(code **)(puStack_b0 + -0x7774))(7);
    uVar28 = uVar18;
    if ((int)uVar18 < 0) {
      uVar28 = uVar18 + 0x3f;
    }
    pdVar16 = (double *)((int)uVar28 >> 6);
    if (extraout_v1 < (int)pdVar16) {
      pdStack_a4 = pdVar16;
      (**(code **)(puStack_b0 + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      pdVar16 = pdStack_a4;
    }
    else {
      bVar1 = (int)uVar18 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_a4 = pdVar16;
      (**(code **)(puStack_b0 + -0x7774))(7);
      pdVar16 = pdStack_a4;
      if (extraout_v1_01 < (int)pdStack_a4) {
        pcVar33 = *(code **)(puStack_b0 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      pdVar16 = (double *)0x1;
    }
  }
  else {
    uVar48 = (**(code **)(puStack_b0 + -0x7774))(7);
    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {
      pcVar33 = *(code **)(puStack_b0 + -0x7774);
      if ((uint)uVar48 < 2) {
        uVar48 = (*pcVar33)(7);
        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;
        pcVar33 = *(code **)(puStack_b0 + -0x7774);
        if ((uint)uVar48 < 2) {
          pdVar16 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      pcVar33 = *(code **)(puStack_b0 + -0x7774);
    }
    uVar48 = (*pcVar33)(7);
    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&
       (pcVar33 = *(code **)(puStack_b0 + -0x7774), (uint)uVar48 < 2)) {
LAB_0006f4b4:
      (*pcVar33)(7);
      pdVar16 = extraout_v1_00;
    }
    else {
      pdVar16 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar21 = 0;
  pdVar17 = &dStack_a0;
  iStack_78 = 1;
  dStack_a0 = dVar44;
  puStack_98 = puVar13;
  puStack_94 = puVar14;
  uStack_90 = uVar15;
  puStack_8c = puVar20;
  uStack_88 = uVar5;
  uStack_84 = uVar6;
  uStack_80 = uVar4;
  uStack_7c = uVar18;
  (**(code **)(puStack_b0 + -0x7718))(*(int *)(puStack_b0 + -0x7f78) + 0x1c00);
  iVar2 = iStack_78;
  (**(code **)(puStack_b0 + -0x79bc))(uVar6);
  (**(code **)(puStack_b0 + -0x79bc))(uVar5);
  if (iStack_6c == *piVar30) {
    return iVar2;
  }
  pcVar33 = *(code **)(puStack_b0 + -0x784c);
  pcVar34 = FUN_0006f518;
  iVar3 = iStack_6c;
  (*pcVar33)();
  piVar29 = *(int **)(pcVar33 + 0x339d18);
  uVar28 = *(uint *)(iVar3 + 0x1c);
  if (*(uint *)(iVar3 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {
    uVar28 = *(uint *)((int)pdVar17 + 0x1c);
  }
  uVar27 = *(uint *)(iVar3 + 0x18);
  if (*(uint *)(iVar3 + 0x18) <= *(uint *)(pdVar17 + 3)) {
    uVar27 = *(uint *)(pdVar17 + 3);
  }
  iStack_e8 = iVar2;
  iStack_ec = *piVar29;
  puStack_e4 = puVar14;
  uStack_e0 = uVar18;
  puStack_dc = puVar20;
  uStack_d8 = uVar4;
  piStack_d4 = piVar30;
  uStack_d0 = uVar15;
  uStack_cc = uVar5;
  uStack_c8 = uVar6;
  pcStack_c4 = pcVar34;
  uVar15 = (**(code **)(pcVar33 + 0x33a23c))();
  uVar5 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);
  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3);
  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)) &&
     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 4 ||
      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar3), iVar2 == 3)))) {
    (**(code **)(pcVar33 + 0x339c24))(7);
    uVar18 = uVar28;
    if ((int)uVar28 < 0) {
      uVar18 = uVar28 + 0x3f;
    }
    iVar2 = (int)uVar18 >> 6;
    if (extraout_v1_03 < iVar2) {
      (**(code **)(pcVar33 + 0x339c24))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = (int)uVar28 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar33 + 0x339c24))(7);
      if (extraout_v1_05 < iVar2) {
        pcVar34 = *(code **)(pcVar33 + 0x339c24);
        goto LAB_0006f8ac;
      }
    }
    else {
      iVar2 = 1;
    }
  }
  else {
    uVar48 = (**(code **)(pcVar33 + 0x339c24))(7);
    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {
      pcVar34 = *(code **)(pcVar33 + 0x339c24);
      if ((uint)uVar48 < 2) {
        uVar48 = (*pcVar34)(7);
        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f60c;
        pcVar34 = *(code **)(pcVar33 + 0x339c24);
        if ((uint)uVar48 < 2) {
          iVar2 = 1;
          goto LAB_0006f624;
        }
      }
    }
    else {
LAB_0006f60c:
      pcVar34 = *(code **)(pcVar33 + 0x339c24);
    }
    uVar48 = (*pcVar34)(7);
    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&
       (pcVar34 = *(code **)(pcVar33 + 0x339c24), (uint)uVar48 < 2)) {
LAB_0006f8ac:
      (*pcVar34)(7);
      iVar2 = extraout_v1_04;
    }
    else {
      iVar2 = 2;
    }
  }
LAB_0006f624:
  piVar22 = (int *)0x0;
  piVar30 = &iStack_120;
  iStack_f4 = 1;
  uStack_11c = 0;
  iStack_120 = 0;
  uStack_100 = 0;
  iStack_118 = iVar3;
  pdStack_114 = pdVar17;
  pdStack_110 = pdVar16;
  uStack_10c = uVar21;
  uStack_108 = uVar15;
  uStack_104 = uVar5;
  uStack_fc = uVar27;
  uStack_f8 = uVar28;
  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);
  iVar11 = iStack_f4;
  uVar6 = uStack_11c;
  iVar2 = iStack_120;
  dVar35 = (double)CONCAT44(iStack_120,uStack_11c);
  (**(code **)(pcVar33 + 0x3399dc))(uVar5);
  (**(code **)(pcVar33 + 0x3399dc))(uVar15);
  if (0.0 <= dVar35) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);
    dStack_128 = dVar35;
  }
  else {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);
    dStack_128 = -(double)CONCAT44(iVar2,uVar6);
  }
  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_128) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;
  }
  else {
    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);
  }
  pdVar17 = pdVar16;
  do {
    pdVar7 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar44;
    pdVar17 = pdVar7;
  } while (pdVar16 + 0x41 != pdVar7);
  pdVar17 = (double *)0x0;
  if (0 < *(int *)(iVar3 + 0x2c0)) {
    piVar22 = *(int **)(iVar3 + 0x2d0);
    piVar30 = piVar22 + *(int *)(iVar3 + 0x2c0) * 3;
    piVar10 = piVar22;
    do {
      if ((piVar22[*piVar10 * 3 + 1] & 2U) != 0) {
        pdVar17 = (double *)((int)pdVar17 + 1);
      }
      piVar10 = piVar10 + 3;
    } while (piVar10 != piVar30);
    if (pdVar17 != (double *)0x0) {
      dVar35 = (double)(int)pdVar17;
      if ((int)pdVar17 < 0) {
        dVar35 = dVar35 + *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1418);
      }
      goto LAB_0006f778;
    }
  }
  dVar35 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);
LAB_0006f778:
  iVar2 = *piVar29;
  pdVar16[0x40] = pdVar16[0x40] / dVar35;
  if (iStack_ec == iVar2) {
    return iVar11;
  }
  pcVar33 = *(code **)(pcVar33 + 0x339b4c);
  iVar2 = iStack_ec;
  (*pcVar33)();
  uVar18 = *(uint *)(iVar2 + 0x1c);
  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {
    uVar18 = piVar30[7];
  }
  uVar4 = *(uint *)(iVar2 + 0x18);
  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {
    uVar4 = piVar30[6];
  }
  uVar15 = (**(code **)(pcVar33 + 0x339e44))();
  uVar5 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);
  if ((int)uVar18 < 1) {
    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);
    iVar3 = 1;
    dVar46 = 0.0;
    dVar35 = dVar46;
    dVar44 = dVar46;
  }
  else {
    iVar3 = *(int *)(pcVar33 + 0x338fd0);
    iVar11 = *(int *)(pcVar33 + 0x338fd0);
    iStack_1b0 = *(int *)(pcVar33 + 0x338fd0);
    dVar47 = *(double *)(iVar3 + 0x1438);
    uVar28 = 0;
    uVar45 = (ulonglong)*(uint *)(iVar11 + 0x3708);
    dVar46 = 0.0;
    pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    dVar35 = dVar46;
    dVar44 = dVar46;
    dVar37 = dVar47;
    do {
      pfVar8 = (float *)(*pcVar34)(uVar15,0,uVar28,uVar4,1,piVar22);
      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar5,0,uVar28,uVar4,1,piVar22);
      if ((pfVar8 == (float *)0x0) || (iVar9 == 0)) {
        iVar3 = 0;
        goto LAB_0006fc88;
      }
      if (0 < (int)uVar4) {
        uVar27 = 0;
        piVar29 = *(int **)(iVar2 + 0x2d0);
        dVar40 = *(double *)(iStack_1b0 + 0x1440);
        iVar31 = piVar29[0x13];
        dVar43 = *(double *)(iVar3 + 0x1438);
        fVar39 = *(float *)(iVar11 + 0x3708);
        do {
          while (((iVar31 != 0 && (pfVar8[piVar29[0x14]] <= fVar39)) ||
                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&
                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {
            uVar27 = uVar27 + 1;
            pfVar8 = pfVar8 + *(int *)(iVar2 + 0x2c0);
            iVar9 = iVar9 + piVar30[0xb0] * 4;
            if (uVar27 == uVar4) goto LAB_0006fc4c;
          }
          dVar36 = dVar43;
          if (piVar29[0xd] != 0) {
            dVar36 = (double)pfVar8[piVar29[0xe]] * dVar40;
          }
          dVar38 = dVar37;
          if (*(int *)(iVar23 + 0x34) != 0) {
            dVar38 = (double)*(float *)(iVar9 + *(int *)(iVar23 + 0x38) * 4) * dVar40;
          }
          iVar26 = *(int *)(iVar2 + 0x2c0);
          if (0 < iVar26) {
            pdVar16 = pdVar17;
            piVar10 = piVar29;
            pfVar19 = pfVar8;
            do {
              iVar24 = *piVar10;
              iVar12 = iVar23 + iVar24 * 0xc;
              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar12 + 4), uVar25 != 0))
                 && ((uVar25 & 2) != 0)) {
                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar12 + 8) * 4);
                if (iVar24 == 4) {
                  dVar41 = (double)*pfVar19 - dVar41;
                }
                else {
                  dVar41 = dVar36 * (double)*pfVar19 - dVar38 * dVar41;
                }
                dVar35 = dVar35 + dVar47;
                dVar42 = ABS(dVar41);
                dVar46 = dVar42 * dVar42 + dVar46;
                *pdVar16 = *pdVar16 + dVar42;
                pdVar17[0x40] = pdVar17[0x40] + dVar42;
                if (dVar44 < dVar42) {
                  dVar44 = ABS(dVar41);
                }
              }
              pdVar16 = pdVar16 + 1;
              piVar10 = piVar10 + 3;
              pfVar19 = pfVar19 + 1;
            } while (pdVar16 != pdVar17 + iVar26);
          }
          uVar27 = uVar27 + 1;
          pfVar8 = pfVar8 + iVar26;
          iVar9 = iVar9 + piVar30[0xb0] * 4;
        } while (uVar27 != uVar4);
      }
LAB_0006fc4c:
      uVar28 = uVar28 + 1;
      pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    } while (uVar28 != uVar18);
    iVar3 = 1;
  }
LAB_0006fc88:
  (**(code **)(pcVar33 + 0x3395e4))(uVar5);
  (**(code **)(pcVar33 + 0x3395e4))(uVar15);
  dVar37 = *(double *)(iStack_1b0 + 0x1440);
  dVar47 = *(double *)(*(int *)(pcVar33 + 0x338fd0) + 0x3700);
  *(double *)(iVar2 + 0x2d8) = pdVar17[0x40] / dVar35;
  *(double *)(iVar2 + 0x2e8) = dVar44 * dVar37;
  *(double *)(iVar2 + 0x2e0) = (dVar46 * dVar47) / dVar35;
  return iVar3;
}

