
/* 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 SetImageMonochrome(Image *image,ExceptionInfo *exception)

{
  bool bVar1;
  ImageType IVar2;
  uint uVar3;
  undefined4 uVar4;
  int iVar5;
  MagickBooleanType MVar6;
  undefined *puVar7;
  MagickBooleanType MVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  double *pdVar13;
  float *pfVar14;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int *piVar15;
  int extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int iVar16;
  Image *image_00;
  undefined *colorspace;
  int iVar17;
  ExceptionInfo *exception_00;
  double *pdVar18;
  double *pdVar19;
  float *pfVar20;
  int iVar21;
  undefined4 uVar22;
  int *piVar23;
  int iVar24;
  int iVar25;
  uint uVar26;
  int iVar27;
  uint uVar28;
  Image *unaff_s0;
  uint uVar29;
  int *piVar30;
  int *piVar31;
  int iVar32;
  undefined *puVar33;
  code *pcVar34;
  code *pcVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  float fVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  ulonglong uVar46;
  double dVar47;
  double dVar48;
  undefined8 uVar49;
  int iStack_1e0;
  double dStack_158;
  int iStack_150;
  undefined4 uStack_14c;
  int iStack_148;
  double *pdStack_144;
  double *pdStack_140;
  undefined4 uStack_13c;
  undefined4 uStack_138;
  undefined4 uStack_134;
  undefined4 uStack_130;
  uint uStack_12c;
  uint uStack_128;
  MagickBooleanType MStack_124;
  int iStack_11c;
  MagickBooleanType MStack_118;
  int iStack_114;
  uint uStack_110;
  int iStack_10c;
  uint uStack_108;
  int *piStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  code *pcStack_f4;
  code *pcStack_e0;
  double *pdStack_d4;
  double dStack_d0;
  int iStack_c8;
  int iStack_c4;
  undefined4 uStack_c0;
  int iStack_bc;
  undefined4 uStack_b8;
  undefined4 uStack_b4;
  uint uStack_b0;
  uint uStack_ac;
  MagickBooleanType MStack_a8;
  int iStack_9c;
  Image *pIStack_98;
  
  if (image != (Image *)0x0) {
    if (image->signature == 0xabacadab) {
      if (image->debug == MagickFalse) {
        IVar2 = image->type;
      }
      else {
        (*(code *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ff4,0x5b2);
        IVar2 = image->type;
      }
      if (IVar2 == BilevelType) {
        return MagickTrue;
      }
      uVar3 = image->colorspace - GRAYColorspace;
      if (uVar3 < 0x1f) {
        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {
          return MagickFalse;
        }
        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)
                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception
                          );
        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);
        if ((iVar5 == 0) &&
           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {
          image->colorspace = GRAYColorspace;
          MVar6 = SyncImagePixelCache(image,exception);
          if (MVar6 != MagickFalse) {
            image->type = BilevelType;
            return MagickTrue;
          }
        }
      }
      return MagickFalse;
    }
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);
    unaff_s0 = image;
  }
  exception_00 = (ExceptionInfo *)0x5af;
  colorspace = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;
  image_00 = (Image *)(PTR_LAB_003a88e0 + 0xdd0);
  puVar33 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)();
  if (image_00 == (Image *)0x0) {
    (**(code **)(puVar33 + 0x33a644))
              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,
               *(int *)(puVar33 + 0x339924) + -0x4010);
  }
  else {
    unaff_s0 = image_00;
    if (image_00->signature == 0xabacadab) {
      if (image_00->debug == MagickFalse) {
        puVar7 = (undefined *)image_00->colorspace;
      }
      else {
        (**(code **)(puVar33 + 0x33a21c))
                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,
                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);
        puVar7 = (undefined *)image_00->colorspace;
      }
      if (puVar7 == colorspace) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);
        return MVar6;
      }
      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);
      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);
      if (colorspace == (undefined *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);
        return MVar6;
      }
      if ((undefined *)0x1 < colorspace + -0x17) {
        if (image_00->colorspace - sRGBColorspace < 2) {
          MVar6 = MagickTrue;
        }
        else {
          MVar6 = TransformsRGBImage(image_00,exception_00);
          if (MVar6 == MagickFalse) {
            return MagickFalse;
          }
        }
        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);
        if (MVar8 == MagickFalse) {
          return MagickFalse;
        }
        return MVar6;
      }
      MVar6 = TransformsRGBImage(image_00,exception_00);
      return MVar6;
    }
  }
  uVar4 = 0x5e6;
  pcVar34 = *(code **)(puVar33 + 0x33a644);
  iVar21 = *(int *)(puVar33 + 0x339924) + -0x4010;
  iVar17 = *(int *)(puVar33 + 0x339924) + -0x5970;
  iVar5 = *(int *)(puVar33 + 0x339924) + -0x3784;
  (*pcVar34)();
  pcStack_e0 = pcVar34 + 0x3416c0;
  dVar36 = *(double *)(iVar17 + 0x248);
  dVar45 = *(double *)(iVar5 + 0x248);
  piVar31 = *(int **)(pcVar34 + 0x33a040);
  iStack_9c = *piVar31;
  if (dVar36 < dVar45) {
    iVar12 = *(int *)(pcVar34 + 0x3396f8);
    if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    dVar45 = dVar45 * dVar45;
  }
  else {
    iVar12 = *(int *)(pcVar34 + 0x3396f8);
    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {
      if (dVar36 < dVar45) goto LAB_0006f470;
      dVar45 = dVar36 * dVar36;
    }
    else {
LAB_0006f270:
      dVar45 = *(double *)(iVar12 + -0x5ad0);
    }
  }
  uVar3 = *(uint *)(iVar5 + 0x1c);
  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c)) {
    uVar3 = *(uint *)(iVar17 + 0x1c);
  }
  uVar9 = *(uint *)(iVar5 + 0x18);
  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18)) {
    uVar9 = *(uint *)(iVar17 + 0x18);
  }
  pIStack_98 = unaff_s0;
  uVar10 = (**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21);
  uVar11 = (**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21);
  iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5);
  if (((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&
     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||
      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))) {
    (**(code **)(pcStack_e0 + -0x7774))(7);
    uVar29 = uVar3;
    if ((int)uVar3 < 0) {
      uVar29 = uVar3 + 0x3f;
    }
    pdVar18 = (double *)((int)uVar29 >> 6);
    if (extraout_v1 < (int)pdVar18) {
      pdStack_d4 = pdVar18;
      (**(code **)(pcStack_e0 + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      pdVar18 = pdStack_d4;
    }
    else {
      bVar1 = (int)uVar3 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_d4 = pdVar18;
      (**(code **)(pcStack_e0 + -0x7774))(7);
      pdVar18 = pdStack_d4;
      if (extraout_v1_01 < (int)pdStack_d4) {
        pcVar34 = *(code **)(pcStack_e0 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      pdVar18 = (double *)0x1;
    }
  }
  else {
    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);
    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {
      pcVar34 = *(code **)(pcStack_e0 + -0x7774);
      if ((uint)uVar49 < 2) {
        uVar49 = (*pcVar34)(7);
        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;
        pcVar34 = *(code **)(pcStack_e0 + -0x7774);
        if ((uint)uVar49 < 2) {
          pdVar18 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      pcVar34 = *(code **)(pcStack_e0 + -0x7774);
    }
    uVar49 = (*pcVar34)(7);
    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&
       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {
LAB_0006f4b4:
      (*pcVar34)(7);
      pdVar18 = extraout_v1_00;
    }
    else {
      pdVar18 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar22 = 0;
  pdVar19 = &dStack_d0;
  MStack_a8 = MagickTrue;
  dStack_d0 = dVar45;
  iStack_c8 = iVar5;
  iStack_c4 = iVar17;
  uStack_c0 = uVar4;
  iStack_bc = iVar21;
  uStack_b8 = uVar10;
  uStack_b4 = uVar11;
  uStack_b0 = uVar9;
  uStack_ac = uVar3;
  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);
  MVar6 = MStack_a8;
  (**(code **)(pcStack_e0 + -0x79bc))(uVar11);
  (**(code **)(pcStack_e0 + -0x79bc))(uVar10);
  if (iStack_9c == *piVar31) {
    return MVar6;
  }
  pcVar34 = *(code **)(pcStack_e0 + -0x784c);
  pcVar35 = GetMeanAbsoluteDistortion;
  iVar5 = iStack_9c;
  (*pcVar34)();
  piVar30 = *(int **)(pcVar34 + 0x339d18);
  uVar29 = *(uint *)(iVar5 + 0x1c);
  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c)) {
    uVar29 = *(uint *)((int)pdVar19 + 0x1c);
  }
  uVar28 = *(uint *)(iVar5 + 0x18);
  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3)) {
    uVar28 = *(uint *)(pdVar19 + 3);
  }
  MStack_118 = MVar6;
  iStack_11c = *piVar30;
  iStack_114 = iVar17;
  uStack_110 = uVar3;
  iStack_10c = iVar21;
  uStack_108 = uVar9;
  piStack_104 = piVar31;
  uStack_100 = uVar4;
  uStack_fc = uVar10;
  uStack_f8 = uVar11;
  pcStack_f4 = pcVar35;
  uVar4 = (**(code **)(pcVar34 + 0x33a23c))();
  uVar10 = (**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22);
  iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5);
  if (((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&
     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||
      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))) {
    (**(code **)(pcVar34 + 0x339c24))(7);
    uVar3 = uVar29;
    if ((int)uVar29 < 0) {
      uVar3 = uVar29 + 0x3f;
    }
    iVar17 = (int)uVar3 >> 6;
    if (extraout_v1_03 < iVar17) {
      (**(code **)(pcVar34 + 0x339c24))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = (int)uVar29 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar34 + 0x339c24))(7);
      if (extraout_v1_05 < iVar17) {
        pcVar35 = *(code **)(pcVar34 + 0x339c24);
        goto LAB_0006f8ac;
      }
    }
    else {
      iVar17 = 1;
    }
  }
  else {
    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);
    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {
      pcVar35 = *(code **)(pcVar34 + 0x339c24);
      if ((uint)uVar49 < 2) {
        uVar49 = (*pcVar35)(7);
        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;
        pcVar35 = *(code **)(pcVar34 + 0x339c24);
        if ((uint)uVar49 < 2) {
          iVar17 = 1;
          goto LAB_0006f624;
        }
      }
    }
    else {
LAB_0006f60c:
      pcVar35 = *(code **)(pcVar34 + 0x339c24);
    }
    uVar49 = (*pcVar35)(7);
    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&
       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {
LAB_0006f8ac:
      (*pcVar35)(7);
      iVar17 = extraout_v1_04;
    }
    else {
      iVar17 = 2;
    }
  }
LAB_0006f624:
  piVar23 = (int *)0x0;
  piVar31 = &iStack_150;
  MStack_124 = MagickTrue;
  uStack_14c = 0;
  iStack_150 = 0;
  uStack_130 = 0;
  iStack_148 = iVar5;
  pdStack_144 = pdVar19;
  pdStack_140 = pdVar18;
  uStack_13c = uVar22;
  uStack_138 = uVar4;
  uStack_134 = uVar10;
  uStack_12c = uVar28;
  uStack_128 = uVar29;
  (**(code **)(pcVar34 + 0x339c80))(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17);
  MVar6 = MStack_124;
  uVar11 = uStack_14c;
  iVar17 = iStack_150;
  dVar36 = (double)CONCAT44(iStack_150,uStack_14c);
  (**(code **)(pcVar34 + 0x3399dc))(uVar10);
  (**(code **)(pcVar34 + 0x3399dc))(uVar4);
  if (0.0 <= dVar36) {
    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);
    dStack_158 = dVar36;
  }
  else {
    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);
    dStack_158 = -(double)CONCAT44(iVar17,uVar11);
  }
  if (*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158) {
    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;
  }
  else {
    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);
  }
  pdVar19 = pdVar18;
  do {
    pdVar13 = pdVar19 + 1;
    *pdVar19 = *pdVar19 * dVar45;
    pdVar19 = pdVar13;
  } while (pdVar18 + 0x41 != pdVar13);
  pdVar19 = (double *)0x0;
  if (0 < *(int *)(iVar5 + 0x2c0)) {
    piVar23 = *(int **)(iVar5 + 0x2d0);
    piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;
    piVar15 = piVar23;
    do {
      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {
        pdVar19 = (double *)((int)pdVar19 + 1);
      }
      piVar15 = piVar15 + 3;
    } while (piVar15 != piVar31);
    if (pdVar19 != (double *)0x0) {
      dVar36 = (double)(int)pdVar19;
      if ((int)pdVar19 < 0) {
        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);
      }
      goto LAB_0006f778;
    }
  }
  dVar36 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);
LAB_0006f778:
  iVar5 = *piVar30;
  pdVar18[0x40] = pdVar18[0x40] / dVar36;
  if (iStack_11c == iVar5) {
    return MVar6;
  }
  pcVar34 = *(code **)(pcVar34 + 0x339b4c);
  iVar5 = iStack_11c;
  (*pcVar34)();
  uVar3 = *(uint *)(iVar5 + 0x1c);
  if (*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7]) {
    uVar3 = piVar31[7];
  }
  uVar9 = *(uint *)(iVar5 + 0x18);
  if (*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6]) {
    uVar9 = piVar31[6];
  }
  uVar4 = (**(code **)(pcVar34 + 0x339e44))();
  uVar10 = (**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23);
  if ((int)uVar3 < 1) {
    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);
    MVar6 = MagickTrue;
    dVar47 = 0.0;
    dVar36 = dVar47;
    dVar45 = dVar47;
  }
  else {
    iVar17 = *(int *)(pcVar34 + 0x338fd0);
    iVar21 = *(int *)(pcVar34 + 0x338fd0);
    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);
    dVar48 = *(double *)(iVar17 + 0x1438);
    uVar29 = 0;
    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);
    dVar47 = 0.0;
    pcVar35 = *(code **)(pcVar34 + 0x339d4c);
    dVar36 = dVar47;
    dVar45 = dVar47;
    dVar38 = dVar48;
    do {
      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);
      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);
      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {
        MVar6 = MagickFalse;
        goto LAB_0006fc88;
      }
      if (0 < (int)uVar9) {
        uVar28 = 0;
        piVar30 = *(int **)(iVar5 + 0x2d0);
        dVar41 = *(double *)(iStack_1e0 + 0x1440);
        iVar32 = piVar30[0x13];
        dVar44 = *(double *)(iVar17 + 0x1438);
        fVar40 = *(float *)(iVar21 + 0x3708);
        do {
          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||
                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&
                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {
            uVar28 = uVar28 + 1;
            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);
            iVar12 = iVar12 + piVar31[0xb0] * 4;
            if (uVar28 == uVar9) goto LAB_0006fc4c;
          }
          dVar37 = dVar44;
          if (piVar30[0xd] != 0) {
            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;
          }
          dVar39 = dVar38;
          if (*(int *)(iVar24 + 0x34) != 0) {
            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;
          }
          iVar27 = *(int *)(iVar5 + 0x2c0);
          if (0 < iVar27) {
            pdVar18 = pdVar19;
            piVar15 = piVar30;
            pfVar20 = pfVar14;
            do {
              iVar25 = *piVar15;
              iVar16 = iVar24 + iVar25 * 0xc;
              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))
                 && ((uVar26 & 2) != 0)) {
                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);
                if (iVar25 == 4) {
                  dVar42 = (double)*pfVar20 - dVar42;
                }
                else {
                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;
                }
                dVar36 = dVar36 + dVar48;
                dVar43 = ABS(dVar42);
                dVar47 = dVar43 * dVar43 + dVar47;
                *pdVar18 = *pdVar18 + dVar43;
                pdVar19[0x40] = pdVar19[0x40] + dVar43;
                if (dVar45 < dVar43) {
                  dVar45 = ABS(dVar42);
                }
              }
              pdVar18 = pdVar18 + 1;
              piVar15 = piVar15 + 3;
              pfVar20 = pfVar20 + 1;
            } while (pdVar18 != pdVar19 + iVar27);
          }
          uVar28 = uVar28 + 1;
          pfVar14 = pfVar14 + iVar27;
          iVar12 = iVar12 + piVar31[0xb0] * 4;
        } while (uVar28 != uVar9);
      }
LAB_0006fc4c:
      uVar29 = uVar29 + 1;
      pcVar35 = *(code **)(pcVar34 + 0x339d4c);
    } while (uVar29 != uVar3);
    MVar6 = MagickTrue;
  }
LAB_0006fc88:
  (**(code **)(pcVar34 + 0x3395e4))(uVar10);
  (**(code **)(pcVar34 + 0x3395e4))(uVar4);
  dVar38 = *(double *)(iStack_1e0 + 0x1440);
  dVar48 = *(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700);
  *(double *)(iVar5 + 0x2d8) = pdVar19[0x40] / dVar36;
  *(double *)(iVar5 + 0x2e8) = dVar45 * dVar38;
  *(double *)(iVar5 + 0x2e0) = (dVar47 * dVar48) / dVar36;
  return MVar6;
}



int SetImageMonochrome(undefined *param_1,undefined4 param_2)

{
  bool bVar1;
  int iVar2;
  undefined4 uVar3;
  undefined *puVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  double *pdVar10;
  float *pfVar11;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int *piVar12;
  int extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int iVar13;
  undefined *puVar14;
  undefined *puVar15;
  double *pdVar16;
  double *pdVar17;
  uint uVar18;
  float *pfVar19;
  int iVar20;
  undefined4 uVar21;
  int *piVar22;
  int iVar23;
  int iVar24;
  uint uVar25;
  int iVar26;
  uint uVar27;
  undefined *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_1e0;
  double dStack_158;
  int iStack_150;
  undefined4 uStack_14c;
  int iStack_148;
  double *pdStack_144;
  double *pdStack_140;
  undefined4 uStack_13c;
  undefined4 uStack_138;
  undefined4 uStack_134;
  undefined4 uStack_130;
  uint uStack_12c;
  uint uStack_128;
  int iStack_124;
  int iStack_11c;
  int iStack_118;
  int iStack_114;
  uint uStack_110;
  int iStack_10c;
  uint uStack_108;
  int *piStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  code *pcStack_f4;
  code *pcStack_e0;
  double *pdStack_d4;
  double dStack_d0;
  int iStack_c8;
  int iStack_c4;
  undefined4 uStack_c0;
  int iStack_bc;
  undefined4 uStack_b8;
  undefined4 uStack_b4;
  uint uStack_b0;
  uint uStack_ac;
  int iStack_a8;
  int iStack_9c;
  undefined *puStack_98;
  
  if (param_1 != (undefined *)0x0) {
    if (*(int *)(param_1 + 0x336c) == -0x54535255) {
      if (*(int *)(param_1 + 0x3350) == 0) {
        iVar2 = *(int *)(param_1 + 0x2a0);
      }
      else {
        (*(code *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ff4,0x5b2);
        iVar2 = *(int *)(param_1 + 0x2a0);
      }
      if (iVar2 == 1) {
        return 1;
      }
      if (*(int *)(param_1 + 4) - 3U < 0x1f) {
        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {
          return 0;
        }
        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)
                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2
                          );
        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);
        if ((iVar2 == 0) &&
           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {
          *(undefined4 *)(param_1 + 4) = 3;
          iVar2 = FUN_00058a34(param_1,param_2);
          if (iVar2 != 0) {
            *(undefined4 *)(param_1 + 0x2a0) = 1;
            return 1;
          }
        }
      }
      return 0;
    }
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);
    unaff_s0 = param_1;
  }
  uVar3 = 0x5af;
  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;
  puVar14 = PTR_LAB_003a88e0 + 0xdd0;
  puVar32 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);
  if (puVar14 == (undefined *)0x0) {
    (**(code **)(puVar32 + 0x33a644))
              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,
               *(int *)(puVar32 + 0x339924) + -0x4010);
  }
  else {
    unaff_s0 = puVar14;
    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {
      if (*(int *)(puVar14 + 0x3350) == 0) {
        puVar4 = *(undefined **)(puVar14 + 4);
      }
      else {
        (**(code **)(puVar32 + 0x33a21c))
                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,
                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);
        puVar4 = *(undefined **)(puVar14 + 4);
      }
      if (puVar4 == puVar15) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);
        return iVar2;
      }
      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);
      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);
      if (puVar15 == (undefined *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);
        return iVar2;
      }
      if ((undefined *)0x1 < puVar15 + -0x17) {
        if (*(int *)(puVar14 + 4) - 0x17U < 2) {
          iVar2 = 1;
        }
        else {
          iVar2 = FUN_0006b9c8(puVar14,uVar3);
          if (iVar2 == 0) {
            return 0;
          }
        }
        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);
        if (iVar5 == 0) {
          return 0;
        }
        return iVar2;
      }
      iVar2 = FUN_0006b9c8(puVar14,uVar3);
      return iVar2;
    }
  }
  uVar3 = 0x5e6;
  pcVar33 = *(code **)(puVar32 + 0x33a644);
  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;
  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;
  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;
  (*pcVar33)();
  pcStack_e0 = pcVar33 + 0x3416c0;
  dVar35 = *(double *)(iVar5 + 0x248);
  dVar44 = *(double *)(iVar2 + 0x248);
  piVar30 = *(int **)(pcVar33 + 0x33a040);
  iStack_9c = *piVar30;
  if (dVar35 < dVar44) {
    iVar9 = *(int *)(pcVar33 + 0x3396f8);
    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    dVar44 = dVar44 * dVar44;
  }
  else {
    iVar9 = *(int *)(pcVar33 + 0x3396f8);
    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {
      if (dVar35 < dVar44) goto LAB_0006f470;
      dVar44 = dVar35 * dVar35;
    }
    else {
LAB_0006f270:
      dVar44 = *(double *)(iVar9 + -0x5ad0);
    }
  }
  uVar18 = *(uint *)(iVar2 + 0x1c);
  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {
    uVar18 = *(uint *)(iVar5 + 0x1c);
  }
  uVar6 = *(uint *)(iVar2 + 0x18);
  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {
    uVar6 = *(uint *)(iVar5 + 0x18);
  }
  puStack_98 = unaff_s0;
  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);
  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);
  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);
  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&
     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||
      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {
    (**(code **)(pcStack_e0 + -0x7774))(7);
    uVar28 = uVar18;
    if ((int)uVar18 < 0) {
      uVar28 = uVar18 + 0x3f;
    }
    pdVar16 = (double *)((int)uVar28 >> 6);
    if (extraout_v1 < (int)pdVar16) {
      pdStack_d4 = pdVar16;
      (**(code **)(pcStack_e0 + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      pdVar16 = pdStack_d4;
    }
    else {
      bVar1 = (int)uVar18 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_d4 = pdVar16;
      (**(code **)(pcStack_e0 + -0x7774))(7);
      pdVar16 = pdStack_d4;
      if (extraout_v1_01 < (int)pdStack_d4) {
        pcVar33 = *(code **)(pcStack_e0 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      pdVar16 = (double *)0x1;
    }
  }
  else {
    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);
    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {
      pcVar33 = *(code **)(pcStack_e0 + -0x7774);
      if ((uint)uVar48 < 2) {
        uVar48 = (*pcVar33)(7);
        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;
        pcVar33 = *(code **)(pcStack_e0 + -0x7774);
        if ((uint)uVar48 < 2) {
          pdVar16 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      pcVar33 = *(code **)(pcStack_e0 + -0x7774);
    }
    uVar48 = (*pcVar33)(7);
    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&
       (pcVar33 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2)) {
LAB_0006f4b4:
      (*pcVar33)(7);
      pdVar16 = extraout_v1_00;
    }
    else {
      pdVar16 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar21 = 0;
  pdVar17 = &dStack_d0;
  iStack_a8 = 1;
  dStack_d0 = dVar44;
  iStack_c8 = iVar2;
  iStack_c4 = iVar5;
  uStack_c0 = uVar3;
  iStack_bc = iVar20;
  uStack_b8 = uVar7;
  uStack_b4 = uVar8;
  uStack_b0 = uVar6;
  uStack_ac = uVar18;
  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);
  iVar2 = iStack_a8;
  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);
  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);
  if (iStack_9c == *piVar30) {
    return iVar2;
  }
  pcVar33 = *(code **)(pcStack_e0 + -0x784c);
  pcVar34 = FUN_0006f518;
  iVar9 = iStack_9c;
  (*pcVar33)();
  piVar29 = *(int **)(pcVar33 + 0x339d18);
  uVar28 = *(uint *)(iVar9 + 0x1c);
  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {
    uVar28 = *(uint *)((int)pdVar17 + 0x1c);
  }
  uVar27 = *(uint *)(iVar9 + 0x18);
  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {
    uVar27 = *(uint *)(pdVar17 + 3);
  }
  iStack_118 = iVar2;
  iStack_11c = *piVar29;
  iStack_114 = iVar5;
  uStack_110 = uVar18;
  iStack_10c = iVar20;
  uStack_108 = uVar6;
  piStack_104 = piVar30;
  uStack_100 = uVar3;
  uStack_fc = uVar7;
  uStack_f8 = uVar8;
  pcStack_f4 = pcVar34;
  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();
  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);
  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);
  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&
     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||
      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;
  iStack_124 = 1;
  uStack_14c = 0;
  iStack_150 = 0;
  uStack_130 = 0;
  iStack_148 = iVar9;
  pdStack_144 = pdVar17;
  pdStack_140 = pdVar16;
  uStack_13c = uVar21;
  uStack_138 = uVar3;
  uStack_134 = uVar7;
  uStack_12c = uVar27;
  uStack_128 = uVar28;
  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);
  iVar5 = iStack_124;
  uVar8 = uStack_14c;
  iVar2 = iStack_150;
  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);
  (**(code **)(pcVar33 + 0x3399dc))(uVar7);
  (**(code **)(pcVar33 + 0x3399dc))(uVar3);
  if (0.0 <= dVar35) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);
    dStack_158 = dVar35;
  }
  else {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);
    dStack_158 = -(double)CONCAT44(iVar2,uVar8);
  }
  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;
  }
  else {
    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);
  }
  pdVar17 = pdVar16;
  do {
    pdVar10 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar44;
    pdVar17 = pdVar10;
  } while (pdVar16 + 0x41 != pdVar10);
  pdVar17 = (double *)0x0;
  if (0 < *(int *)(iVar9 + 0x2c0)) {
    piVar22 = *(int **)(iVar9 + 0x2d0);
    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;
    piVar12 = piVar22;
    do {
      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {
        pdVar17 = (double *)((int)pdVar17 + 1);
      }
      piVar12 = piVar12 + 3;
    } while (piVar12 != 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_11c == iVar2) {
    return iVar5;
  }
  pcVar33 = *(code **)(pcVar33 + 0x339b4c);
  iVar2 = iStack_11c;
  (*pcVar33)();
  uVar18 = *(uint *)(iVar2 + 0x1c);
  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {
    uVar18 = piVar30[7];
  }
  uVar6 = *(uint *)(iVar2 + 0x18);
  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {
    uVar6 = piVar30[6];
  }
  uVar3 = (**(code **)(pcVar33 + 0x339e44))();
  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);
  if ((int)uVar18 < 1) {
    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);
    iVar5 = 1;
    dVar46 = 0.0;
    dVar35 = dVar46;
    dVar44 = dVar46;
  }
  else {
    iVar5 = *(int *)(pcVar33 + 0x338fd0);
    iVar20 = *(int *)(pcVar33 + 0x338fd0);
    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);
    dVar47 = *(double *)(iVar5 + 0x1438);
    uVar28 = 0;
    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);
    dVar46 = 0.0;
    pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    dVar35 = dVar46;
    dVar44 = dVar46;
    dVar37 = dVar47;
    do {
      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);
      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);
      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {
        iVar5 = 0;
        goto LAB_0006fc88;
      }
      if (0 < (int)uVar6) {
        uVar27 = 0;
        piVar29 = *(int **)(iVar2 + 0x2d0);
        dVar40 = *(double *)(iStack_1e0 + 0x1440);
        iVar31 = piVar29[0x13];
        dVar43 = *(double *)(iVar5 + 0x1438);
        fVar39 = *(float *)(iVar20 + 0x3708);
        do {
          while (((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||
                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&
                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {
            uVar27 = uVar27 + 1;
            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);
            iVar9 = iVar9 + piVar30[0xb0] * 4;
            if (uVar27 == uVar6) goto LAB_0006fc4c;
          }
          dVar36 = dVar43;
          if (piVar29[0xd] != 0) {
            dVar36 = (double)pfVar11[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;
            piVar12 = piVar29;
            pfVar19 = pfVar11;
            do {
              iVar24 = *piVar12;
              iVar13 = iVar23 + iVar24 * 0xc;
              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))
                 && ((uVar25 & 2) != 0)) {
                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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;
              piVar12 = piVar12 + 3;
              pfVar19 = pfVar19 + 1;
            } while (pdVar16 != pdVar17 + iVar26);
          }
          uVar27 = uVar27 + 1;
          pfVar11 = pfVar11 + iVar26;
          iVar9 = iVar9 + piVar30[0xb0] * 4;
        } while (uVar27 != uVar6);
      }
LAB_0006fc4c:
      uVar28 = uVar28 + 1;
      pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    } while (uVar28 != uVar18);
    iVar5 = 1;
  }
LAB_0006fc88:
  (**(code **)(pcVar33 + 0x3395e4))(uVar7);
  (**(code **)(pcVar33 + 0x3395e4))(uVar3);
  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;
}


lui gp,0x34
addiu gp,gp,0x1aa0
addu gp,gp,t9
addiu sp,sp,-0x30
sw gp,0x18(sp)
sw ra,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
beq a0,zero,0x0006efa0
_sw s0,0x20(sp)
lui v0,0xabac
lw v1,0x336c(a0)
ori v0,v0,0xadab
bne v1,v0,0x0006ef7c
_or s0,a0,zero
lw v0,0x3350(a0)
bne v0,zero,0x0006ee98
_or s2,a1,zero
lw v0,0x2a0(s0)
li s1,0x1
beq v0,s1,0x0006eee0
_lw ra,0x2c(sp)
lw v0,0x4(s0)
addiu v0,v0,-0x3
sltiu v1,v0,0x1f
bne v1,zero,0x0006eef8
_lui v1,0x403c
or v0,zero,zero
lw ra,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x30
addiu v0,a0,0x340
lw a2,-0x7fc8(gp)
lw a1,-0x7fc8(gp)
li a3,0x5b2
lw t9,-0x76d0(gp)
ori a0,zero,0x8000
sw v0,0x14(sp)
addiu a2,a2,-0x3ff4
lw v0,-0x7fcc(gp)
addiu a1,a1,-0x5970
li s1,0x1
addiu v0,v0,-0x62ac
jalr t9
_sw v0,0x10(sp)
lw v0,0x2a0(s0)
bne v0,s1,0x0006ee68
_lw gp,0x18(sp)
lw ra,0x2c(sp)
li v0,0x1
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x30
addiu v1,v1,0x1
srlv v0,v1,v0
ext v0,v0,0x0,0x1
beq v0,zero,0x0006ee80
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s0,zero
lw t9,-0x74b4(gp)
or a2,s2,zero
jalr t9
_addiu a1,a1,-0x58ac
lw gp,0x18(sp)
lw t9,-0x7694(gp)
jalr t9
_or a0,v0,zero
bne v0,zero,0x0006ee7c
_lw gp,0x18(sp)
lw t9,-0x71f4(gp)
or a1,s2,zero
jalr t9
_or a0,s0,zero
beq v0,zero,0x0006ee7c
_lw gp,0x18(sp)
li v0,0x3
lw t9,-0x7f7c(gp)
or a1,s2,zero
sw v0,0x4(s0)
bal 0x00058a34
_or a0,s0,zero
beq v0,zero,0x0006ee7c
_li v0,0x1
b 0x0006ee80
_sw s1,0x2a0(s0)
lw a3,-0x7fc8(gp)
li a2,0x5b0
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x3fe0
addiu a1,a1,-0x5970
jalr t9
_addiu a0,a0,-0x3784
lw a3,-0x7fc8(gp)
li a2,0x5af
lw a1,-0x7fc8(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x3fe0
addiu a1,a1,-0x5970
jalr t9
_addiu a0,a0,0xdd0
(translation_unit "int SetImageMonochrome(undefined *param_1,undefined4 param_2)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}\n\n" (function_definition "int SetImageMonochrome(undefined *param_1,undefined4 param_2)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}" primitive_type (function_declarator "SetImageMonochrome(undefined *param_1,undefined4 param_2)" identifier (parameter_list "(undefined *param_1,undefined4 param_2)" ( (parameter_declaration "undefined *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier 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 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 *piVar12;" primitive_type (pointer_declarator "*piVar12" * 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 iVar13;" primitive_type identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * 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 "int iVar20;" primitive_type 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 "undefined *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * 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_1e0;" primitive_type identifier ;) (declaration "double dStack_158;" primitive_type identifier ;) (declaration "int iStack_150;" primitive_type identifier ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "double *pdStack_144;" primitive_type (pointer_declarator "*pdStack_144" * identifier) ;) (declaration "double *pdStack_140;" primitive_type (pointer_declarator "*pdStack_140" * identifier) ;) (declaration "undefined4 uStack_13c;" type_identifier identifier ;) (declaration "undefined4 uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 uStack_130;" type_identifier identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "uint uStack_128;" type_identifier identifier ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "int iStack_11c;" primitive_type identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "int iStack_114;" primitive_type identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "uint uStack_108;" type_identifier identifier ;) (declaration "int *piStack_104;" primitive_type (pointer_declarator "*piStack_104" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "code *pcStack_e0;" type_identifier (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "double *pdStack_d4;" primitive_type (pointer_declarator "*pdStack_d4" * identifier) ;) (declaration "double dStack_d0;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "undefined4 uStack_c0;" type_identifier identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (if_statement "if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }" if (parenthesized_expression "(param_1 != (undefined *)0x0)" ( (binary_expression "param_1 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }" { (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\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 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }" { (if_statement "if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + 0x2a0);\n      }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x2a0);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x2a0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a0)" * (cast_expression "(int *)(param_1 + 0x2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" 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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);" (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 + -0x3ff4,0x5b2)" (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 + -0x3ff4,0x5b2)" ( 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 + -0x3ff4" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x2a0);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x2a0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a0)" * (cast_expression "(int *)(param_1 + 0x2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar2 == 1) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 4) - 3U < 0x1f)" ( (binary_expression "*(int *)(param_1 + 4) - 3U < 0x1f" (binary_expression "*(int *)(param_1 + 4) - 3U" (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        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }" { (if_statement "if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }" if (parenthesized_expression "(-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f))" ( (binary_expression "-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" number_literal < (cast_expression "(int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" ( (binary_expression "(0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f" (parenthesized_expression "(0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f))" ( (binary_expression "0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)" number_literal >> (parenthesized_expression "(*(int *)(param_1 + 4) - 3U & 0x1f)" ( (binary_expression "*(int *)(param_1 + 4) - 3U & 0x1f" (binary_expression "*(int *)(param_1 + 4) - 3U" (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) ))) )) << number_literal) )))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );" (assignment_expression "uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" identifier = (call_expression "(*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" (parenthesized_expression "(*(code *)PTR_GetImageProperty_003a93fc)" ( (pointer_expression "*(code *)PTR_GetImageProperty_003a93fc" * (cast_expression "(code *)PTR_GetImageProperty_003a93fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3)" identifier = (call_expression "(*(code *)PTR_IsStringFalse_003a921c)(uVar3)" (parenthesized_expression "(*(code *)PTR_IsStringFalse_003a921c)" ( (pointer_expression "*(code *)PTR_IsStringFalse_003a921c" * (cast_expression "(code *)PTR_IsStringFalse_003a921c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }" if (parenthesized_expression "((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0))" ( (binary_expression "(iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)" ( (comma_expression "iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2)" identifier = (call_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)" ( (pointer_expression "*(code *)PTR_IdentifyImageMonochrome_003a96bc" * (cast_expression "(code *)PTR_IdentifyImageMonochrome_003a96bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }" { (expression_statement "*(undefined4 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 3" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = FUN_00058a34(param_1,param_2);" (assignment_expression "iVar2 = FUN_00058a34(param_1,param_2)" identifier = (call_expression "FUN_00058a34(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x2a0) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x2a0) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x2a0)" * (cast_expression "(undefined4 *)(param_1 + 0x2a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" 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 + -0x3fe0" identifier + number_literal) ))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) })) (expression_statement "uVar3 = 0x5af;" (assignment_expression "uVar3 = 0x5af" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar15 = 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 "puVar14 = PTR_LAB_003a88e0 + 0xdd0;" (assignment_expression "puVar14 = PTR_LAB_003a88e0 + 0xdd0" identifier = (binary_expression "PTR_LAB_003a88e0 + 0xdd0" 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)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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 "(puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" ( identifier , identifier , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0" identifier + number_literal) ))) ;) (if_statement "if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" if (parenthesized_expression "(puVar14 == (undefined *)0x0)" ( (binary_expression "puVar14 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }" { (expression_statement "(**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);" (call_expression "(**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a644))" ( (pointer_expression "**(code **)(puVar32 + 0x33a644)" * (pointer_expression "*(code **)(puVar32 + 0x33a644)" * (cast_expression "(code **)(puVar32 + 0x33a644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a644)" ( (binary_expression "puVar32 + 0x33a644" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010)" ( (binary_expression "*(int *)(puVar32 + 0x33991c) + 0xdd0" (pointer_expression "*(int *)(puVar32 + 0x33991c)" * (cast_expression "(int *)(puVar32 + 0x33991c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x33991c)" ( (binary_expression "puVar32 + 0x33991c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" { (expression_statement "unaff_s0 = puVar14;" (assignment_expression "unaff_s0 = puVar14" identifier = identifier) ;) (if_statement "if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }" if (parenthesized_expression "(*(int *)(puVar14 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(puVar14 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar14 + 0x336c)" * (cast_expression "(int *)(puVar14 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x336c)" ( (binary_expression "puVar14 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }" { (if_statement "if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" if (parenthesized_expression "(*(int *)(puVar14 + 0x3350) == 0)" ( (binary_expression "*(int *)(puVar14 + 0x3350) == 0" (pointer_expression "*(int *)(puVar14 + 0x3350)" * (cast_expression "(int *)(puVar14 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3350)" ( (binary_expression "puVar14 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" { (expression_statement "puVar4 = *(undefined **)(puVar14 + 4);" (assignment_expression "puVar4 = *(undefined **)(puVar14 + 4)" identifier = (pointer_expression "*(undefined **)(puVar14 + 4)" * (cast_expression "(undefined **)(puVar14 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" else (compound_statement "{\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" { (expression_statement "(**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);" (call_expression "(**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a21c))" ( (pointer_expression "**(code **)(puVar32 + 0x33a21c)" * (pointer_expression "*(code **)(puVar32 + 0x33a21c)" * (cast_expression "(code **)(puVar32 + 0x33a21c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a21c)" ( (binary_expression "puVar32 + 0x33a21c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8)" ( number_literal , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x402c" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar4 = *(undefined **)(puVar14 + 4);" (assignment_expression "puVar4 = *(undefined **)(puVar14 + 4)" identifier = (pointer_expression "*(undefined **)(puVar14 + 4)" * (cast_expression "(undefined **)(puVar14 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar4 == puVar15) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }" if (parenthesized_expression "(puVar4 == puVar15)" ( (binary_expression "puVar4 == puVar15" 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 **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }" { comment comment (expression_statement "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);" (assignment_expression "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3)" identifier = (call_expression "(**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3)" (parenthesized_expression "(**(code **)(puVar32 + 0x339d7c))" ( (pointer_expression "**(code **)(puVar32 + 0x339d7c)" * (pointer_expression "*(code **)(puVar32 + 0x339d7c)" * (cast_expression "(code **)(puVar32 + 0x339d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x339d7c)" ( (binary_expression "puVar32 + 0x339d7c" identifier + number_literal) ))))) )) (argument_list "(puVar14,puVar15,uVar3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);" (call_expression "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a864))" ( (pointer_expression "**(code **)(puVar32 + 0x33a864)" * (pointer_expression "*(code **)(puVar32 + 0x33a864)" * (cast_expression "(code **)(puVar32 + 0x33a864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a864)" ( (binary_expression "puVar32 + 0x33a864" identifier + number_literal) ))))) )) (argument_list "(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890)" ( identifier , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5890" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);" (call_expression "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a864))" ( (pointer_expression "**(code **)(puVar32 + 0x33a864)" * (pointer_expression "*(code **)(puVar32 + 0x33a864)" * (cast_expression "(code **)(puVar32 + 0x33a864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a864)" ( (binary_expression "puVar32 + 0x33a864" identifier + number_literal) ))))) )) (argument_list "(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c)" ( identifier , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x588c" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }" if (parenthesized_expression "(puVar15 == (undefined *)0x0)" ( (binary_expression "puVar15 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }" { comment comment (expression_statement "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);" (assignment_expression "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3)" identifier = (call_expression "(**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3)" (parenthesized_expression "(**(code **)(puVar32 + 0x339d7c))" ( (pointer_expression "**(code **)(puVar32 + 0x339d7c)" * (pointer_expression "*(code **)(puVar32 + 0x339d7c)" * (cast_expression "(code **)(puVar32 + 0x339d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x339d7c)" ( (binary_expression "puVar32 + 0x339d7c" identifier + number_literal) ))))) )) (argument_list "(puVar14,0,uVar3)" ( identifier , number_literal , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" if (parenthesized_expression "((undefined *)0x1 < puVar15 + -0x17)" ( (binary_expression "(undefined *)0x1 < puVar15 + -0x17" (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar15 + -0x17" identifier + number_literal)) )) (compound_statement "{\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" { (if_statement "if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar14 + 4) - 0x17U < 2)" ( (binary_expression "*(int *)(puVar14 + 4) - 0x17U < 2" (binary_expression "*(int *)(puVar14 + 4) - 0x17U" (pointer_expression "*(int *)(puVar14 + 4)" * (cast_expression "(int *)(puVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 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(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" { (expression_statement "iVar2 = FUN_0006b9c8(puVar14,uVar3);" (assignment_expression "iVar2 = FUN_0006b9c8(puVar14,uVar3)" identifier = (call_expression "FUN_0006b9c8(puVar14,uVar3)" identifier (argument_list "(puVar14,uVar3)" ( 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 "iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);" (assignment_expression "iVar5 = FUN_0006d178(puVar14,puVar15,uVar3)" identifier = (call_expression "FUN_0006d178(puVar14,puVar15,uVar3)" identifier (argument_list "(puVar14,puVar15,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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(puVar14,uVar3);" (assignment_expression "iVar2 = FUN_0006b9c8(puVar14,uVar3)" identifier = (call_expression "FUN_0006b9c8(puVar14,uVar3)" identifier (argument_list "(puVar14,uVar3)" ( identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "uVar3 = 0x5e6;" (assignment_expression "uVar3 = 0x5e6" identifier = number_literal) ;) (expression_statement "pcVar33 = *(code **)(puVar32 + 0x33a644);" (assignment_expression "pcVar33 = *(code **)(puVar32 + 0x33a644)" identifier = (pointer_expression "*(code **)(puVar32 + 0x33a644)" * (cast_expression "(code **)(puVar32 + 0x33a644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a644)" ( (binary_expression "puVar32 + 0x33a644" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;" (assignment_expression "iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010" identifier = (binary_expression "*(int *)(puVar32 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;" (assignment_expression "iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970" identifier = (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784" identifier = (binary_expression "*(int *)(puVar32 + 0x339924) + -0x3784" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_e0 = pcVar33 + 0x3416c0;" (assignment_expression "pcStack_e0 = pcVar33 + 0x3416c0" identifier = (binary_expression "pcVar33 + 0x3416c0" identifier + number_literal)) ;) (expression_statement "dVar35 = *(double *)(iVar5 + 0x248);" (assignment_expression "dVar35 = *(double *)(iVar5 + 0x248)" identifier = (pointer_expression "*(double *)(iVar5 + 0x248)" * (cast_expression "(double *)(iVar5 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x248)" ( (binary_expression "iVar5 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(iVar2 + 0x248);" (assignment_expression "dVar44 = *(double *)(iVar2 + 0x248)" identifier = (pointer_expression "*(double *)(iVar2 + 0x248)" * (cast_expression "(double *)(iVar2 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x248)" ( (binary_expression "iVar2 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = *(int **)(pcVar33 + 0x33a040);" (assignment_expression "piVar30 = *(int **)(pcVar33 + 0x33a040)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x33a040)" * (cast_expression "(int **)(pcVar33 + 0x33a040)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a040)" ( (binary_expression "pcVar33 + 0x33a040" identifier + number_literal) ))))) ;) (expression_statement "iStack_9c = *piVar30;" (assignment_expression "iStack_9c = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (if_statement "if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" if (parenthesized_expression "(dVar35 < dVar44)" ( (binary_expression "dVar35 < dVar44" identifier < identifier) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }" { (expression_statement "iVar9 = *(int *)(pcVar33 + 0x3396f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x3396f8)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" if (parenthesized_expression "(dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8))" ( (binary_expression "dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" identifier <= (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(pcVar33 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 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    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" { (expression_statement "iVar9 = *(int *)(pcVar33 + 0x3396f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x3396f8)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35)" ( (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(pcVar33 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 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 *)(iVar9 + -0x5ad0);\n    }" else (compound_statement "{\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }" { (labeled_statement "LAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);" statement_identifier : (expression_statement "dVar44 = *(double *)(iVar9 + -0x5ad0);" (assignment_expression "dVar44 = *(double *)(iVar9 + -0x5ad0)" identifier = (pointer_expression "*(double *)(iVar9 + -0x5ad0)" * (cast_expression "(double *)(iVar9 + -0x5ad0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x5ad0)" ( (binary_expression "iVar9 + -0x5ad0" identifier + number_literal) ))))) ;)) }))) }))) (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 *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c))" ( (binary_expression "*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)" (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) )))) <= (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }" { (expression_statement "uVar18 = *(uint *)(iVar5 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar6 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar6 = *(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 *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18))" ( (binary_expression "*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)" (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) )))) <= (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }" { (expression_statement "uVar6 = *(uint *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "puStack_98 = unaff_s0;" (assignment_expression "puStack_98 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);" (assignment_expression "uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20)" identifier = (call_expression "(**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20)" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a564))" ( (pointer_expression "**(code **)(pcVar33 + 0x33a564)" * (pointer_expression "*(code **)(pcVar33 + 0x33a564)" * (cast_expression "(code **)(pcVar33 + 0x33a564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a564)" ( (binary_expression "pcVar33 + 0x33a564" identifier + number_literal) ))))) )) (argument_list "(iVar2,iVar20)" ( identifier , identifier )))) ;) (expression_statement "uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);" (assignment_expression "uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x715c))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x715c)" * (pointer_expression "*(code **)(pcStack_e0 + -0x715c)" * (cast_expression "(code **)(pcStack_e0 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x715c)" ( (binary_expression "pcStack_e0 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 "(((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))))" ( (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))" ( (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" ( (binary_expression "iVar9 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))" ( (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))" ( (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (binary_expression "iVar9 == 4" identifier == number_literal) || (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }" { (expression_statement "pdStack_d4 = pdVar16;" (assignment_expression "pdStack_d4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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_d4;" (assignment_expression "pdVar16 = pdStack_d4" 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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" { (expression_statement "pdStack_d4 = pdVar16;" (assignment_expression "pdStack_d4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar16 = pdStack_d4;" (assignment_expression "pdVar16 = pdStack_d4" identifier = identifier) ;) (if_statement "if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" if (parenthesized_expression "(extraout_v1_01 < (int)pdStack_d4)" ( (binary_expression "extraout_v1_01 < (int)pdStack_d4" identifier < (cast_expression "(int)pdStack_d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" { (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);" (assignment_expression "uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" { (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);\n    }" else (compound_statement "{\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }" { (labeled_statement "LAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);" statement_identifier : (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2))" ( (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2)" ( (comma_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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_d0;" (assignment_expression "pdVar17 = &dStack_d0" identifier = (pointer_expression "&dStack_d0" & identifier)) ;) (expression_statement "iStack_a8 = 1;" (assignment_expression "iStack_a8 = 1" identifier = number_literal) ;) (expression_statement "dStack_d0 = dVar44;" (assignment_expression "dStack_d0 = dVar44" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar2;" (assignment_expression "iStack_c8 = iVar2" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar5;" (assignment_expression "iStack_c4 = iVar5" identifier = identifier) ;) (expression_statement "uStack_c0 = uVar3;" (assignment_expression "uStack_c0 = uVar3" identifier = identifier) ;) (expression_statement "iStack_bc = iVar20;" (assignment_expression "iStack_bc = iVar20" identifier = identifier) ;) (expression_statement "uStack_b8 = uVar7;" (assignment_expression "uStack_b8 = uVar7" identifier = identifier) ;) (expression_statement "uStack_b4 = uVar8;" (assignment_expression "uStack_b4 = uVar8" identifier = identifier) ;) (expression_statement "uStack_b0 = uVar6;" (assignment_expression "uStack_b0 = uVar6" identifier = identifier) ;) (expression_statement "uStack_ac = uVar18;" (assignment_expression "uStack_ac = uVar18" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7718))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7718)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7718)" * (cast_expression "(code **)(pcStack_e0 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7718)" ( (binary_expression "pcStack_e0 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" ( (binary_expression "*(int *)(pcStack_e0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(pcStack_e0 + -0x7f78)" * (cast_expression "(int *)(pcStack_e0 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_e0 + -0x7f78)" ( (binary_expression "pcStack_e0 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = iStack_a8;" (assignment_expression "iVar2 = iStack_a8" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar8);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar8)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" * (cast_expression "(code **)(pcStack_e0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x79bc)" ( (binary_expression "pcStack_e0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar7);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" * (cast_expression "(code **)(pcStack_e0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x79bc)" ( (binary_expression "pcStack_e0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (if_statement "if (iStack_9c == *piVar30) {\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_9c == *piVar30)" ( (binary_expression "iStack_9c == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x784c);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x784c)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x784c)" * (cast_expression "(code **)(pcStack_e0 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x784c)" ( (binary_expression "pcStack_e0 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = FUN_0006f518;" (assignment_expression "pcVar34 = FUN_0006f518" identifier = identifier) ;) (expression_statement "iVar9 = iStack_9c;" (assignment_expression "iVar9 = iStack_9c" 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 *)(iVar9 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar9 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c))" ( (binary_expression "*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 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 *)(iVar9 + 0x18);" (assignment_expression "uVar27 = *(uint *)(iVar9 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3))" ( (binary_expression "*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 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_118 = iVar2;" (assignment_expression "iStack_118 = iVar2" identifier = identifier) ;) (expression_statement "iStack_11c = *piVar29;" (assignment_expression "iStack_11c = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "iStack_114 = iVar5;" (assignment_expression "iStack_114 = iVar5" identifier = identifier) ;) (expression_statement "uStack_110 = uVar18;" (assignment_expression "uStack_110 = uVar18" identifier = identifier) ;) (expression_statement "iStack_10c = iVar20;" (assignment_expression "iStack_10c = iVar20" identifier = identifier) ;) (expression_statement "uStack_108 = uVar6;" (assignment_expression "uStack_108 = uVar6" identifier = identifier) ;) (expression_statement "piStack_104 = piVar30;" (assignment_expression "piStack_104 = piVar30" identifier = identifier) ;) (expression_statement "uStack_100 = uVar3;" (assignment_expression "uStack_100 = uVar3" identifier = identifier) ;) (expression_statement "uStack_fc = uVar7;" (assignment_expression "uStack_fc = uVar7" identifier = identifier) ;) (expression_statement "uStack_f8 = uVar8;" (assignment_expression "uStack_f8 = uVar8" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar34;" (assignment_expression "pcStack_f4 = pcVar34" identifier = identifier) ;) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x33a23c))();" (assignment_expression "uVar3 = (**(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 "uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);" (assignment_expression "uVar7 = (**(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))(iVar9);" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( 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_150;" (assignment_expression "piVar30 = &iStack_150" identifier = (pointer_expression "&iStack_150" & identifier)) ;) (expression_statement "iStack_124 = 1;" (assignment_expression "iStack_124 = 1" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "iStack_150 = 0;" (assignment_expression "iStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "iStack_148 = iVar9;" (assignment_expression "iStack_148 = iVar9" identifier = identifier) ;) (expression_statement "pdStack_144 = pdVar17;" (assignment_expression "pdStack_144 = pdVar17" identifier = identifier) ;) (expression_statement "pdStack_140 = pdVar16;" (assignment_expression "pdStack_140 = pdVar16" identifier = identifier) ;) (expression_statement "uStack_13c = uVar21;" (assignment_expression "uStack_13c = uVar21" identifier = identifier) ;) (expression_statement "uStack_138 = uVar3;" (assignment_expression "uStack_138 = uVar3" identifier = identifier) ;) (expression_statement "uStack_134 = uVar7;" (assignment_expression "uStack_134 = uVar7" identifier = identifier) ;) (expression_statement "uStack_12c = uVar27;" (assignment_expression "uStack_12c = uVar27" identifier = identifier) ;) (expression_statement "uStack_128 = uVar28;" (assignment_expression "uStack_128 = 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 "iVar5 = iStack_124;" (assignment_expression "iVar5 = iStack_124" identifier = identifier) ;) (expression_statement "uVar8 = uStack_14c;" (assignment_expression "uVar8 = uStack_14c" identifier = identifier) ;) (expression_statement "iVar2 = iStack_150;" (assignment_expression "iVar2 = iStack_150" identifier = identifier) ;) (expression_statement "dVar35 = (double)CONCAT44(iStack_150,uStack_14c);" (assignment_expression "dVar35 = (double)CONCAT44(iStack_150,uStack_14c)" identifier = (cast_expression "(double)CONCAT44(iStack_150,uStack_14c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iStack_150,uStack_14c)" identifier (argument_list "(iStack_150,uStack_14c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar7);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar7)" (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 "(uVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar3);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar3)" (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 "(uVar3)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\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_158 = 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_158 = dVar35;" (assignment_expression "dStack_158 = dVar35" identifier = identifier) ;) }) (else_clause "else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }" else (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\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_158 = -(double)CONCAT44(iVar2,uVar8);" (assignment_expression "dStack_158 = -(double)CONCAT44(iVar2,uVar8)" identifier = (unary_expression "-(double)CONCAT44(iVar2,uVar8)" - (cast_expression "(double)CONCAT44(iVar2,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar2,uVar8)" identifier (argument_list "(iVar2,uVar8)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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_158)" ( (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158" (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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);" do (compound_statement "{\n    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  }" { (expression_statement "pdVar10 = pdVar17 + 1;" (assignment_expression "pdVar10 = 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 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar16 + 0x41 != pdVar10)" ( (binary_expression "pdVar16 + 0x41 != pdVar10" (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 *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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 *)(iVar9 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar9 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar9 + 0x2c0)" * (cast_expression "(int *)(iVar9 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2c0)" ( (binary_expression "iVar9 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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 **)(iVar9 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar9 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar9 + 0x2d0)" * (cast_expression "(int **)(iVar9 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x2d0)" ( (binary_expression "iVar9 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;" (assignment_expression "piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3" identifier = (binary_expression "piVar22 + *(int *)(iVar9 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar9 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar9 + 0x2c0)" * (cast_expression "(int *)(iVar9 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2c0)" ( (binary_expression "iVar9 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar12 = piVar22;" (assignment_expression "piVar12 = piVar22" identifier = identifier) ;) (do_statement "do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != piVar30);" do (compound_statement "{\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    }" { (if_statement "if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" if (parenthesized_expression "((piVar22[*piVar12 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar22[*piVar12 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar22[*piVar12 * 3 + 1] & 2U)" ( (binary_expression "piVar22[*piVar12 * 3 + 1] & 2U" (subscript_expression "piVar22[*piVar12 * 3 + 1]" identifier [ (binary_expression "*piVar12 * 3 + 1" (binary_expression "*piVar12 * 3" (pointer_expression "*piVar12" * 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 "piVar12 = piVar12 + 3;" (assignment_expression "piVar12 = piVar12 + 3" identifier = (binary_expression "piVar12 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != piVar30)" ( (binary_expression "piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_11c == iVar2)" ( (binary_expression "iStack_11c == iVar2" identifier == identifier) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" 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_11c;" (assignment_expression "iVar2 = iStack_11c" 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 "uVar6 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar6 = *(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    uVar6 = 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    uVar6 = piVar30[6];\n  }" { (expression_statement "uVar6 = piVar30[6];" (assignment_expression "uVar6 = piVar30[6]" identifier = (subscript_expression "piVar30[6]" identifier [ number_literal ])) ;) })) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x339e44))();" (assignment_expression "uVar3 = (**(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 "uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);" (assignment_expression "uVar7 = (**(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_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 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_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }" { (expression_statement "iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(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 "iVar5 = 1;" (assignment_expression "iVar5 = 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    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }" else (compound_statement "{\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar5 = *(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 "iVar20 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar20 = *(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_1e0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(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 *)(iVar5 + 0x1438);" (assignment_expression "dVar47 = *(double *)(iVar5 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar5 + 0x1438)" * (cast_expression "(double *)(iVar5 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1438)" ( (binary_expression "iVar5 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar20 + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar20 + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3708)" ( (binary_expression "iVar20 + 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      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);" do (compound_statement "{\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    }" { (expression_statement "pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);" (assignment_expression "pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" identifier = (cast_expression "(float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(uVar3,0,uVar28,uVar6,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,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 "(uVar7,0,uVar28,uVar6,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }" if (parenthesized_expression "((pfVar11 == (float *)0x0) || (iVar9 == 0))" ( (binary_expression "(pfVar11 == (float *)0x0) || (iVar9 == 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 "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0006fc88;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }" if (parenthesized_expression "(0 < (int)uVar6)" ( (binary_expression "0 < (int)uVar6" number_literal < (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\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_1e0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1e0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" * (cast_expression "(double *)(iStack_1e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1e0 + 0x1440)" ( (binary_expression "iStack_1e0 + 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 *)(iVar5 + 0x1438);" (assignment_expression "dVar43 = *(double *)(iVar5 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar5 + 0x1438)" * (cast_expression "(double *)(iVar5 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1438)" ( (binary_expression "iVar5 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(iVar20 + 0x3708);" (assignment_expression "fVar39 = *(float *)(iVar20 + 0x3708)" identifier = (pointer_expression "*(float *)(iVar20 + 0x3708)" * (cast_expression "(float *)(iVar20 + 0x3708)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3708)" ( (binary_expression "iVar20 + 0x3708" identifier + number_literal) ))))) ;) (do_statement "do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);" do (compound_statement "{\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        }" { (while_statement "while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }" while (parenthesized_expression "(((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))))" ( (parenthesized_expression "((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))" ( (binary_expression "(iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (parenthesized_expression "(iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39))" ( (binary_expression "iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)" (binary_expression "iVar31 != 0" identifier != number_literal) && (parenthesized_expression "(pfVar11[piVar29[0x14]] <= fVar39)" ( (binary_expression "pfVar11[piVar29[0x14]] <= fVar39" (subscript_expression "pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }" { (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);" (assignment_expression "pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0)" identifier = (binary_expression "pfVar11 + *(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 == uVar6) goto LAB_0006fc4c;" if (parenthesized_expression "(uVar27 == uVar6)" ( (binary_expression "uVar27 == uVar6" 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)pfVar11[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)pfVar11[piVar29[0xe]] * dVar40;\n          }" { (expression_statement "dVar36 = (double)pfVar11[piVar29[0xe]] * dVar40;" (assignment_expression "dVar36 = (double)pfVar11[piVar29[0xe]] * dVar40" identifier = (binary_expression "(double)pfVar11[piVar29[0xe]] * dVar40" (cast_expression "(double)pfVar11[piVar29[0xe]]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" { (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (expression_statement "piVar12 = piVar29;" (assignment_expression "piVar12 = piVar29" identifier = identifier) ;) (expression_statement "pfVar19 = pfVar11;" (assignment_expression "pfVar19 = pfVar11" identifier = identifier) ;) (do_statement "do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);" do (compound_statement "{\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            }" { (expression_statement "iVar24 = *piVar12;" (assignment_expression "iVar24 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "iVar13 = iVar23 + iVar24 * 0xc;" (assignment_expression "iVar13 = 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 *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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 *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0))" ( (binary_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)" (parenthesized_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))" ( (binary_expression "(piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 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 *)(iVar13 + 4), uVar25 != 0)" ( (comma_expression "uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar13 + 4)" identifier = (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 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 *)(iVar13 + 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 *)(iVar13 + 8) * 4);" (assignment_expression "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar13 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar13 + 8) * 4" identifier + (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 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 "piVar12 = piVar12 + 3;" (assignment_expression "piVar12 = piVar12 + 3" identifier = (binary_expression "piVar12 + 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 "pfVar11 = pfVar11 + iVar26;" (assignment_expression "pfVar11 = pfVar11 + iVar26" identifier = (binary_expression "pfVar11 + 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 != uVar6)" ( (binary_expression "uVar27 != uVar6" 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 "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar7);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar7)" (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 "(uVar7)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar3);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar3)" (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 "(uVar3)" ( identifier ))) ;) (expression_statement "dVar37 = *(double *)(iStack_1e0 + 0x1440);" (assignment_expression "dVar37 = *(double *)(iStack_1e0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" * (cast_expression "(double *)(iStack_1e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1e0 + 0x1440)" ( (binary_expression "iStack_1e0 + 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 iVar5;" 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 SetImageMonochrome(Image *image,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  ImageType IVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  MagickBooleanType MVar6;\n  undefined *puVar7;\n  MagickBooleanType MVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  double *pdVar13;\n  float *pfVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar15;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar16;\n  Image *image_00;\n  undefined *colorspace;\n  int iVar17;\n  ExceptionInfo *exception_00;\n  double *pdVar18;\n  double *pdVar19;\n  float *pfVar20;\n  int iVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  uint uVar26;\n  int iVar27;\n  uint uVar28;\n  Image *unaff_s0;\n  uint uVar29;\n  int *piVar30;\n  int *piVar31;\n  int iVar32;\n  undefined *puVar33;\n  code *pcVar34;\n  code *pcVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  float fVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  ulonglong uVar46;\n  double dVar47;\n  double dVar48;\n  undefined8 uVar49;\n  int iStack_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  MagickBooleanType MStack_124;\n  int iStack_11c;\n  MagickBooleanType MStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  MagickBooleanType MStack_a8;\n  int iStack_9c;\n  Image *pIStack_98;\n  \n  if (image != (Image *)0x0) {\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = image;\n  }\n  exception_00 = (ExceptionInfo *)0x5af;\n  colorspace = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  image_00 = (Image *)(PTR_LAB_003a88e0 + 0xdd0);\n  puVar33 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  if (image_00 == (Image *)0x0) {\n    (**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = image_00;\n    if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }\n  }\n  uVar4 = 0x5e6;\n  pcVar34 = *(code **)(puVar33 + 0x33a644);\n  iVar21 = *(int *)(puVar33 + 0x339924) + -0x4010;\n  iVar17 = *(int *)(puVar33 + 0x339924) + -0x5970;\n  iVar5 = *(int *)(puVar33 + 0x339924) + -0x3784;\n  (*pcVar34)();\n  pcStack_e0 = pcVar34 + 0x3416c0;\n  dVar36 = *(double *)(iVar17 + 0x248);\n  dVar45 = *(double *)(iVar5 + 0x248);\n  piVar31 = *(int **)(pcVar34 + 0x33a040);\n  iStack_9c = *piVar31;\n  if (dVar36 < dVar45) {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar45 = dVar45 * dVar45;\n  }\n  else {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }\n  }\n  uVar3 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c)) {\n    uVar3 = *(uint *)(iVar17 + 0x1c);\n  }\n  uVar9 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18)) {\n    uVar9 = *(uint *)(iVar17 + 0x18);\n  }\n  pIStack_98 = unaff_s0;\n  uVar10 = (**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21);\n  uVar11 = (**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21);\n  iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5);\n  if (((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&\n     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))) {\n    (**(code **)(pcStack_e0 + -0x7774))(7);\n    uVar29 = uVar3;\n    if ((int)uVar3 < 0) {\n      uVar29 = uVar3 + 0x3f;\n    }\n    pdVar18 = (double *)((int)uVar29 >> 6);\n    if (extraout_v1 < (int)pdVar18) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar3 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar18 = (double *)0x1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar49 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar22 = 0;\n  pdVar19 = &dStack_d0;\n  MStack_a8 = MagickTrue;\n  dStack_d0 = dVar45;\n  iStack_c8 = iVar5;\n  iStack_c4 = iVar17;\n  uStack_c0 = uVar4;\n  iStack_bc = iVar21;\n  uStack_b8 = uVar10;\n  uStack_b4 = uVar11;\n  uStack_b0 = uVar9;\n  uStack_ac = uVar3;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  MVar6 = MStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar11);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar10);\n  if (iStack_9c == *piVar31) {\n    return MVar6;\n  }\n  pcVar34 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar35 = GetMeanAbsoluteDistortion;\n  iVar5 = iStack_9c;\n  (*pcVar34)();\n  piVar30 = *(int **)(pcVar34 + 0x339d18);\n  uVar29 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c)) {\n    uVar29 = *(uint *)((int)pdVar19 + 0x1c);\n  }\n  uVar28 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3)) {\n    uVar28 = *(uint *)(pdVar19 + 3);\n  }\n  MStack_118 = MVar6;\n  iStack_11c = *piVar30;\n  iStack_114 = iVar17;\n  uStack_110 = uVar3;\n  iStack_10c = iVar21;\n  uStack_108 = uVar9;\n  piStack_104 = piVar31;\n  uStack_100 = uVar4;\n  uStack_fc = uVar10;\n  uStack_f8 = uVar11;\n  pcStack_f4 = pcVar35;\n  uVar4 = (**(code **)(pcVar34 + 0x33a23c))();\n  uVar10 = (**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22);\n  iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5);\n  if (((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&\n     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))) {\n    (**(code **)(pcVar34 + 0x339c24))(7);\n    uVar3 = uVar29;\n    if ((int)uVar29 < 0) {\n      uVar3 = uVar29 + 0x3f;\n    }\n    iVar17 = (int)uVar3 >> 6;\n    if (extraout_v1_03 < iVar17) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar29 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar17 = 1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }\n    uVar49 = (*pcVar35)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar23 = (int *)0x0;\n  piVar31 = &iStack_150;\n  MStack_124 = MagickTrue;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar5;\n  pdStack_144 = pdVar19;\n  pdStack_140 = pdVar18;\n  uStack_13c = uVar22;\n  uStack_138 = uVar4;\n  uStack_134 = uVar10;\n  uStack_12c = uVar28;\n  uStack_128 = uVar29;\n  (**(code **)(pcVar34 + 0x339c80))(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17);\n  MVar6 = MStack_124;\n  uVar11 = uStack_14c;\n  iVar17 = iStack_150;\n  dVar36 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar34 + 0x3399dc))(uVar10);\n  (**(code **)(pcVar34 + 0x3399dc))(uVar4);\n  if (0.0 <= dVar36) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar36;\n  }\n  else {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar17,uVar11);\n  }\n  if (*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;\n  }\n  else {\n    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);\n  }\n  pdVar19 = pdVar18;\n  do {\n    pdVar13 = pdVar19 + 1;\n    *pdVar19 = *pdVar19 * dVar45;\n    pdVar19 = pdVar13;\n  } while (pdVar18 + 0x41 != pdVar13);\n  pdVar19 = (double *)0x0;\n  if (0 < *(int *)(iVar5 + 0x2c0)) {\n    piVar23 = *(int **)(iVar5 + 0x2d0);\n    piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;\n    piVar15 = piVar23;\n    do {\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    } while (piVar15 != piVar31);\n    if (pdVar19 != (double *)0x0) {\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar36 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar5 = *piVar30;\n  pdVar18[0x40] = pdVar18[0x40] / dVar36;\n  if (iStack_11c == iVar5) {\n    return MVar6;\n  }\n  pcVar34 = *(code **)(pcVar34 + 0x339b4c);\n  iVar5 = iStack_11c;\n  (*pcVar34)();\n  uVar3 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7]) {\n    uVar3 = piVar31[7];\n  }\n  uVar9 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6]) {\n    uVar9 = piVar31[6];\n  }\n  uVar4 = (**(code **)(pcVar34 + 0x339e44))();\n  uVar10 = (**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23);\n  if ((int)uVar3 < 1) {\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    MVar6 = MagickTrue;\n    dVar47 = 0.0;\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n  }\n  else {\n    iVar17 = *(int *)(pcVar34 + 0x338fd0);\n    iVar21 = *(int *)(pcVar34 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    dVar48 = *(double *)(iVar17 + 0x1438);\n    uVar29 = 0;\n    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);\n    dVar47 = 0.0;\n    pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n    dVar38 = dVar48;\n    do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);\n    MVar6 = MagickTrue;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar34 + 0x3395e4))(uVar10);\n  (**(code **)(pcVar34 + 0x3395e4))(uVar4);\n  dVar38 = *(double *)(iStack_1e0 + 0x1440);\n  dVar48 = *(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700);\n  *(double *)(iVar5 + 0x2d8) = pdVar19[0x40] / dVar36;\n  *(double *)(iVar5 + 0x2e8) = dVar45 * dVar38;\n  *(double *)(iVar5 + 0x2e0) = (dVar47 * dVar48) / dVar36;\n  return MVar6;\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType SetImageMonochrome(Image *image,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  ImageType IVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  MagickBooleanType MVar6;\n  undefined *puVar7;\n  MagickBooleanType MVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  double *pdVar13;\n  float *pfVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar15;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar16;\n  Image *image_00;\n  undefined *colorspace;\n  int iVar17;\n  ExceptionInfo *exception_00;\n  double *pdVar18;\n  double *pdVar19;\n  float *pfVar20;\n  int iVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  uint uVar26;\n  int iVar27;\n  uint uVar28;\n  Image *unaff_s0;\n  uint uVar29;\n  int *piVar30;\n  int *piVar31;\n  int iVar32;\n  undefined *puVar33;\n  code *pcVar34;\n  code *pcVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  float fVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  ulonglong uVar46;\n  double dVar47;\n  double dVar48;\n  undefined8 uVar49;\n  int iStack_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  MagickBooleanType MStack_124;\n  int iStack_11c;\n  MagickBooleanType MStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  MagickBooleanType MStack_a8;\n  int iStack_9c;\n  Image *pIStack_98;\n  \n  if (image != (Image *)0x0) {\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = image;\n  }\n  exception_00 = (ExceptionInfo *)0x5af;\n  colorspace = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  image_00 = (Image *)(PTR_LAB_003a88e0 + 0xdd0);\n  puVar33 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  if (image_00 == (Image *)0x0) {\n    (**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = image_00;\n    if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }\n  }\n  uVar4 = 0x5e6;\n  pcVar34 = *(code **)(puVar33 + 0x33a644);\n  iVar21 = *(int *)(puVar33 + 0x339924) + -0x4010;\n  iVar17 = *(int *)(puVar33 + 0x339924) + -0x5970;\n  iVar5 = *(int *)(puVar33 + 0x339924) + -0x3784;\n  (*pcVar34)();\n  pcStack_e0 = pcVar34 + 0x3416c0;\n  dVar36 = *(double *)(iVar17 + 0x248);\n  dVar45 = *(double *)(iVar5 + 0x248);\n  piVar31 = *(int **)(pcVar34 + 0x33a040);\n  iStack_9c = *piVar31;\n  if (dVar36 < dVar45) {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar45 = dVar45 * dVar45;\n  }\n  else {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }\n  }\n  uVar3 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c)) {\n    uVar3 = *(uint *)(iVar17 + 0x1c);\n  }\n  uVar9 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18)) {\n    uVar9 = *(uint *)(iVar17 + 0x18);\n  }\n  pIStack_98 = unaff_s0;\n  uVar10 = (**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21);\n  uVar11 = (**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21);\n  iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5);\n  if (((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&\n     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))) {\n    (**(code **)(pcStack_e0 + -0x7774))(7);\n    uVar29 = uVar3;\n    if ((int)uVar3 < 0) {\n      uVar29 = uVar3 + 0x3f;\n    }\n    pdVar18 = (double *)((int)uVar29 >> 6);\n    if (extraout_v1 < (int)pdVar18) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar3 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar18 = (double *)0x1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar49 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar22 = 0;\n  pdVar19 = &dStack_d0;\n  MStack_a8 = MagickTrue;\n  dStack_d0 = dVar45;\n  iStack_c8 = iVar5;\n  iStack_c4 = iVar17;\n  uStack_c0 = uVar4;\n  iStack_bc = iVar21;\n  uStack_b8 = uVar10;\n  uStack_b4 = uVar11;\n  uStack_b0 = uVar9;\n  uStack_ac = uVar3;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  MVar6 = MStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar11);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar10);\n  if (iStack_9c == *piVar31) {\n    return MVar6;\n  }\n  pcVar34 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar35 = GetMeanAbsoluteDistortion;\n  iVar5 = iStack_9c;\n  (*pcVar34)();\n  piVar30 = *(int **)(pcVar34 + 0x339d18);\n  uVar29 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c)) {\n    uVar29 = *(uint *)((int)pdVar19 + 0x1c);\n  }\n  uVar28 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3)) {\n    uVar28 = *(uint *)(pdVar19 + 3);\n  }\n  MStack_118 = MVar6;\n  iStack_11c = *piVar30;\n  iStack_114 = iVar17;\n  uStack_110 = uVar3;\n  iStack_10c = iVar21;\n  uStack_108 = uVar9;\n  piStack_104 = piVar31;\n  uStack_100 = uVar4;\n  uStack_fc = uVar10;\n  uStack_f8 = uVar11;\n  pcStack_f4 = pcVar35;\n  uVar4 = (**(code **)(pcVar34 + 0x33a23c))();\n  uVar10 = (**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22);\n  iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5);\n  if (((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&\n     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))) {\n    (**(code **)(pcVar34 + 0x339c24))(7);\n    uVar3 = uVar29;\n    if ((int)uVar29 < 0) {\n      uVar3 = uVar29 + 0x3f;\n    }\n    iVar17 = (int)uVar3 >> 6;\n    if (extraout_v1_03 < iVar17) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar29 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar17 = 1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }\n    uVar49 = (*pcVar35)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar23 = (int *)0x0;\n  piVar31 = &iStack_150;\n  MStack_124 = MagickTrue;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar5;\n  pdStack_144 = pdVar19;\n  pdStack_140 = pdVar18;\n  uStack_13c = uVar22;\n  uStack_138 = uVar4;\n  uStack_134 = uVar10;\n  uStack_12c = uVar28;\n  uStack_128 = uVar29;\n  (**(code **)(pcVar34 + 0x339c80))(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17);\n  MVar6 = MStack_124;\n  uVar11 = uStack_14c;\n  iVar17 = iStack_150;\n  dVar36 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar34 + 0x3399dc))(uVar10);\n  (**(code **)(pcVar34 + 0x3399dc))(uVar4);\n  if (0.0 <= dVar36) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar36;\n  }\n  else {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar17,uVar11);\n  }\n  if (*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;\n  }\n  else {\n    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);\n  }\n  pdVar19 = pdVar18;\n  do {\n    pdVar13 = pdVar19 + 1;\n    *pdVar19 = *pdVar19 * dVar45;\n    pdVar19 = pdVar13;\n  } while (pdVar18 + 0x41 != pdVar13);\n  pdVar19 = (double *)0x0;\n  if (0 < *(int *)(iVar5 + 0x2c0)) {\n    piVar23 = *(int **)(iVar5 + 0x2d0);\n    piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;\n    piVar15 = piVar23;\n    do {\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    } while (piVar15 != piVar31);\n    if (pdVar19 != (double *)0x0) {\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar36 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar5 = *piVar30;\n  pdVar18[0x40] = pdVar18[0x40] / dVar36;\n  if (iStack_11c == iVar5) {\n    return MVar6;\n  }\n  pcVar34 = *(code **)(pcVar34 + 0x339b4c);\n  iVar5 = iStack_11c;\n  (*pcVar34)();\n  uVar3 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7]) {\n    uVar3 = piVar31[7];\n  }\n  uVar9 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6]) {\n    uVar9 = piVar31[6];\n  }\n  uVar4 = (**(code **)(pcVar34 + 0x339e44))();\n  uVar10 = (**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23);\n  if ((int)uVar3 < 1) {\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    MVar6 = MagickTrue;\n    dVar47 = 0.0;\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n  }\n  else {\n    iVar17 = *(int *)(pcVar34 + 0x338fd0);\n    iVar21 = *(int *)(pcVar34 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    dVar48 = *(double *)(iVar17 + 0x1438);\n    uVar29 = 0;\n    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);\n    dVar47 = 0.0;\n    pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n    dVar38 = dVar48;\n    do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);\n    MVar6 = MagickTrue;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar34 + 0x3395e4))(uVar10);\n  (**(code **)(pcVar34 + 0x3395e4))(uVar4);\n  dVar38 = *(double *)(iStack_1e0 + 0x1440);\n  dVar48 = *(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700);\n  *(double *)(iVar5 + 0x2d8) = pdVar19[0x40] / dVar36;\n  *(double *)(iVar5 + 0x2e8) = dVar45 * dVar38;\n  *(double *)(iVar5 + 0x2e0) = (dVar47 * dVar48) / dVar36;\n  return MVar6;\n}" type_identifier (function_declarator "SetImageMonochrome(Image *image,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ImageType IVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  MagickBooleanType MVar6;\n  undefined *puVar7;\n  MagickBooleanType MVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  double *pdVar13;\n  float *pfVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar15;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar16;\n  Image *image_00;\n  undefined *colorspace;\n  int iVar17;\n  ExceptionInfo *exception_00;\n  double *pdVar18;\n  double *pdVar19;\n  float *pfVar20;\n  int iVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  uint uVar26;\n  int iVar27;\n  uint uVar28;\n  Image *unaff_s0;\n  uint uVar29;\n  int *piVar30;\n  int *piVar31;\n  int iVar32;\n  undefined *puVar33;\n  code *pcVar34;\n  code *pcVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  float fVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  ulonglong uVar46;\n  double dVar47;\n  double dVar48;\n  undefined8 uVar49;\n  int iStack_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  MagickBooleanType MStack_124;\n  int iStack_11c;\n  MagickBooleanType MStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  MagickBooleanType MStack_a8;\n  int iStack_9c;\n  Image *pIStack_98;\n  \n  if (image != (Image *)0x0) {\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = image;\n  }\n  exception_00 = (ExceptionInfo *)0x5af;\n  colorspace = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  image_00 = (Image *)(PTR_LAB_003a88e0 + 0xdd0);\n  puVar33 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)();\n  if (image_00 == (Image *)0x0) {\n    (**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = image_00;\n    if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }\n  }\n  uVar4 = 0x5e6;\n  pcVar34 = *(code **)(puVar33 + 0x33a644);\n  iVar21 = *(int *)(puVar33 + 0x339924) + -0x4010;\n  iVar17 = *(int *)(puVar33 + 0x339924) + -0x5970;\n  iVar5 = *(int *)(puVar33 + 0x339924) + -0x3784;\n  (*pcVar34)();\n  pcStack_e0 = pcVar34 + 0x3416c0;\n  dVar36 = *(double *)(iVar17 + 0x248);\n  dVar45 = *(double *)(iVar5 + 0x248);\n  piVar31 = *(int **)(pcVar34 + 0x33a040);\n  iStack_9c = *piVar31;\n  if (dVar36 < dVar45) {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar45 = dVar45 * dVar45;\n  }\n  else {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }\n  }\n  uVar3 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c)) {\n    uVar3 = *(uint *)(iVar17 + 0x1c);\n  }\n  uVar9 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18)) {\n    uVar9 = *(uint *)(iVar17 + 0x18);\n  }\n  pIStack_98 = unaff_s0;\n  uVar10 = (**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21);\n  uVar11 = (**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21);\n  iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5);\n  if (((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&\n     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))) {\n    (**(code **)(pcStack_e0 + -0x7774))(7);\n    uVar29 = uVar3;\n    if ((int)uVar3 < 0) {\n      uVar29 = uVar3 + 0x3f;\n    }\n    pdVar18 = (double *)((int)uVar29 >> 6);\n    if (extraout_v1 < (int)pdVar18) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar3 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar18 = (double *)0x1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar49 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }\n  }\nLAB_0006f328:\n  uVar22 = 0;\n  pdVar19 = &dStack_d0;\n  MStack_a8 = MagickTrue;\n  dStack_d0 = dVar45;\n  iStack_c8 = iVar5;\n  iStack_c4 = iVar17;\n  uStack_c0 = uVar4;\n  iStack_bc = iVar21;\n  uStack_b8 = uVar10;\n  uStack_b4 = uVar11;\n  uStack_b0 = uVar9;\n  uStack_ac = uVar3;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  MVar6 = MStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar11);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar10);\n  if (iStack_9c == *piVar31) {\n    return MVar6;\n  }\n  pcVar34 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar35 = GetMeanAbsoluteDistortion;\n  iVar5 = iStack_9c;\n  (*pcVar34)();\n  piVar30 = *(int **)(pcVar34 + 0x339d18);\n  uVar29 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c)) {\n    uVar29 = *(uint *)((int)pdVar19 + 0x1c);\n  }\n  uVar28 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3)) {\n    uVar28 = *(uint *)(pdVar19 + 3);\n  }\n  MStack_118 = MVar6;\n  iStack_11c = *piVar30;\n  iStack_114 = iVar17;\n  uStack_110 = uVar3;\n  iStack_10c = iVar21;\n  uStack_108 = uVar9;\n  piStack_104 = piVar31;\n  uStack_100 = uVar4;\n  uStack_fc = uVar10;\n  uStack_f8 = uVar11;\n  pcStack_f4 = pcVar35;\n  uVar4 = (**(code **)(pcVar34 + 0x33a23c))();\n  uVar10 = (**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22);\n  iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5);\n  if (((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&\n     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))) {\n    (**(code **)(pcVar34 + 0x339c24))(7);\n    uVar3 = uVar29;\n    if ((int)uVar29 < 0) {\n      uVar3 = uVar29 + 0x3f;\n    }\n    iVar17 = (int)uVar3 >> 6;\n    if (extraout_v1_03 < iVar17) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar29 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar17 = 1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }\n    uVar49 = (*pcVar35)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }\n  }\nLAB_0006f624:\n  piVar23 = (int *)0x0;\n  piVar31 = &iStack_150;\n  MStack_124 = MagickTrue;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar5;\n  pdStack_144 = pdVar19;\n  pdStack_140 = pdVar18;\n  uStack_13c = uVar22;\n  uStack_138 = uVar4;\n  uStack_134 = uVar10;\n  uStack_12c = uVar28;\n  uStack_128 = uVar29;\n  (**(code **)(pcVar34 + 0x339c80))(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17);\n  MVar6 = MStack_124;\n  uVar11 = uStack_14c;\n  iVar17 = iStack_150;\n  dVar36 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar34 + 0x3399dc))(uVar10);\n  (**(code **)(pcVar34 + 0x3399dc))(uVar4);\n  if (0.0 <= dVar36) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar36;\n  }\n  else {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar17,uVar11);\n  }\n  if (*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;\n  }\n  else {\n    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);\n  }\n  pdVar19 = pdVar18;\n  do {\n    pdVar13 = pdVar19 + 1;\n    *pdVar19 = *pdVar19 * dVar45;\n    pdVar19 = pdVar13;\n  } while (pdVar18 + 0x41 != pdVar13);\n  pdVar19 = (double *)0x0;\n  if (0 < *(int *)(iVar5 + 0x2c0)) {\n    piVar23 = *(int **)(iVar5 + 0x2d0);\n    piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;\n    piVar15 = piVar23;\n    do {\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    } while (piVar15 != piVar31);\n    if (pdVar19 != (double *)0x0) {\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }\n  dVar36 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\nLAB_0006f778:\n  iVar5 = *piVar30;\n  pdVar18[0x40] = pdVar18[0x40] / dVar36;\n  if (iStack_11c == iVar5) {\n    return MVar6;\n  }\n  pcVar34 = *(code **)(pcVar34 + 0x339b4c);\n  iVar5 = iStack_11c;\n  (*pcVar34)();\n  uVar3 = *(uint *)(iVar5 + 0x1c);\n  if (*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7]) {\n    uVar3 = piVar31[7];\n  }\n  uVar9 = *(uint *)(iVar5 + 0x18);\n  if (*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6]) {\n    uVar9 = piVar31[6];\n  }\n  uVar4 = (**(code **)(pcVar34 + 0x339e44))();\n  uVar10 = (**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23);\n  if ((int)uVar3 < 1) {\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    MVar6 = MagickTrue;\n    dVar47 = 0.0;\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n  }\n  else {\n    iVar17 = *(int *)(pcVar34 + 0x338fd0);\n    iVar21 = *(int *)(pcVar34 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    dVar48 = *(double *)(iVar17 + 0x1438);\n    uVar29 = 0;\n    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);\n    dVar47 = 0.0;\n    pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n    dVar38 = dVar48;\n    do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);\n    MVar6 = MagickTrue;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar34 + 0x3395e4))(uVar10);\n  (**(code **)(pcVar34 + 0x3395e4))(uVar4);\n  dVar38 = *(double *)(iStack_1e0 + 0x1440);\n  dVar48 = *(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700);\n  *(double *)(iVar5 + 0x2d8) = pdVar19[0x40] / dVar36;\n  *(double *)(iVar5 + 0x2e8) = dVar45 * dVar38;\n  *(double *)(iVar5 + 0x2e0) = (dVar47 * dVar48) / dVar36;\n  return MVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ImageType IVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "MagickBooleanType MVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "MagickBooleanType MVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "double *pdVar13;" primitive_type (pointer_declarator "*pdVar13" * identifier) ;) (declaration "float *pfVar14;" primitive_type (pointer_declarator "*pfVar14" * 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 *piVar15;" primitive_type (pointer_declarator "*piVar15" * 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 iVar16;" primitive_type identifier ;) (declaration "Image *image_00;" type_identifier (pointer_declarator "*image_00" * identifier) ;) (declaration "undefined *colorspace;" type_identifier (pointer_declarator "*colorspace" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "ExceptionInfo *exception_00;" type_identifier (pointer_declarator "*exception_00" * identifier) ;) (declaration "double *pdVar18;" primitive_type (pointer_declarator "*pdVar18" * identifier) ;) (declaration "double *pdVar19;" primitive_type (pointer_declarator "*pdVar19" * identifier) ;) (declaration "float *pfVar20;" primitive_type (pointer_declarator "*pfVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "Image *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "undefined *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "float fVar40;" 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 "double dVar45;" primitive_type identifier ;) (declaration "ulonglong uVar46;" type_identifier identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "undefined8 uVar49;" type_identifier identifier ;) (declaration "int iStack_1e0;" primitive_type identifier ;) (declaration "double dStack_158;" primitive_type identifier ;) (declaration "int iStack_150;" primitive_type identifier ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "double *pdStack_144;" primitive_type (pointer_declarator "*pdStack_144" * identifier) ;) (declaration "double *pdStack_140;" primitive_type (pointer_declarator "*pdStack_140" * identifier) ;) (declaration "undefined4 uStack_13c;" type_identifier identifier ;) (declaration "undefined4 uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 uStack_130;" type_identifier identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "uint uStack_128;" type_identifier identifier ;) (declaration "MagickBooleanType MStack_124;" type_identifier identifier ;) (declaration "int iStack_11c;" primitive_type identifier ;) (declaration "MagickBooleanType MStack_118;" type_identifier identifier ;) (declaration "int iStack_114;" primitive_type identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "uint uStack_108;" type_identifier identifier ;) (declaration "int *piStack_104;" primitive_type (pointer_declarator "*piStack_104" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "code *pcStack_e0;" type_identifier (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "double *pdStack_d4;" primitive_type (pointer_declarator "*pdStack_d4" * identifier) ;) (declaration "double dStack_d0;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "undefined4 uStack_c0;" type_identifier identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "MagickBooleanType MStack_a8;" type_identifier identifier ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "Image *pIStack_98;" type_identifier (pointer_declarator "*pIStack_98" * identifier) ;) (if_statement "if (image != (Image *)0x0) {\n    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = image;\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    if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = image;\n  }" { (if_statement "if (image->signature == 0xabacadab) {\n      if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\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        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }\n      if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }\n      uVar3 = image->colorspace - GRAYColorspace;\n      if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }\n      return MagickFalse;\n    }" { (if_statement "if (image->debug == MagickFalse) {\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\n      }" if (parenthesized_expression "(image->debug == MagickFalse)" ( (binary_expression "image->debug == MagickFalse" (field_expression "image->debug" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        IVar2 = image->type;\n      }" { (expression_statement "IVar2 = image->type;" (assignment_expression "IVar2 = image->type" identifier = (field_expression "image->type" 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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);\n        IVar2 = image->type;\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 + -0x3ff4,0x5b2);" (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 + -0x3ff4,0x5b2)" (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 + -0x3ff4,0x5b2)" ( 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 + -0x3ff4" identifier + number_literal) , number_literal ))) ;) (expression_statement "IVar2 = image->type;" (assignment_expression "IVar2 = image->type" identifier = (field_expression "image->type" identifier -> field_identifier)) ;) }))) (if_statement "if (IVar2 == BilevelType) {\n        return MagickTrue;\n      }" if (parenthesized_expression "(IVar2 == BilevelType)" ( (binary_expression "IVar2 == BilevelType" identifier == identifier) )) (compound_statement "{\n        return MagickTrue;\n      }" { (return_statement "return MagickTrue;" return identifier ;) })) (expression_statement "uVar3 = image->colorspace - GRAYColorspace;" (assignment_expression "uVar3 = image->colorspace - GRAYColorspace" identifier = (binary_expression "image->colorspace - GRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) - identifier)) ;) (if_statement "if (uVar3 < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }" if (parenthesized_expression "(uVar3 < 0x1f)" ( (binary_expression "uVar3 < 0x1f" identifier < number_literal) )) (compound_statement "{\n        if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }\n        uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );\n        iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);\n        if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }\n      }" { (if_statement "if (-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)) {\n          return MagickFalse;\n        }" if (parenthesized_expression "(-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f))" ( (binary_expression "-1 < (int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)" number_literal < (cast_expression "(int)((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x403c0001U >> (uVar3 & 0x1f)) << 0x1f)" ( (binary_expression "(0x403c0001U >> (uVar3 & 0x1f)) << 0x1f" (parenthesized_expression "(0x403c0001U >> (uVar3 & 0x1f))" ( (binary_expression "0x403c0001U >> (uVar3 & 0x1f)" number_literal >> (parenthesized_expression "(uVar3 & 0x1f)" ( (binary_expression "uVar3 & 0x1f" identifier & number_literal) ))) )) << number_literal) )))) )) (compound_statement "{\n          return MagickFalse;\n        }" { (return_statement "return MagickFalse;" return identifier ;) })) (expression_statement "uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          );" (assignment_expression "uVar4 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          )" identifier = (call_expression "(*(code *)PTR_GetImageProperty_003a93fc)\n                          (image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          )" (parenthesized_expression "(*(code *)PTR_GetImageProperty_003a93fc)" ( (pointer_expression "*(code *)PTR_GetImageProperty_003a93fc" * (cast_expression "(code *)PTR_GetImageProperty_003a93fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,exception\n                          )" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4);" (assignment_expression "iVar5 = (*(code *)PTR_IsStringFalse_003a921c)(uVar4)" identifier = (call_expression "(*(code *)PTR_IsStringFalse_003a921c)(uVar4)" (parenthesized_expression "(*(code *)PTR_IsStringFalse_003a921c)" ( (pointer_expression "*(code *)PTR_IsStringFalse_003a921c" * (cast_expression "(code *)PTR_IsStringFalse_003a921c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if ((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)) {\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }" if (parenthesized_expression "((iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0))" ( (binary_expression "(iVar5 == 0) &&\n           (iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0)" ( (comma_expression "iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception), iVar5 != 0" (assignment_expression "iVar5 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception)" identifier = (call_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)(image,exception)" (parenthesized_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)" ( (pointer_expression "*(code *)PTR_IdentifyImageMonochrome_003a96bc" * (cast_expression "(code *)PTR_IdentifyImageMonochrome_003a96bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,exception)" ( identifier , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          image->colorspace = GRAYColorspace;\n          MVar6 = SyncImagePixelCache(image,exception);\n          if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }\n        }" { (expression_statement "image->colorspace = GRAYColorspace;" (assignment_expression "image->colorspace = GRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) = identifier) ;) (expression_statement "MVar6 = SyncImagePixelCache(image,exception);" (assignment_expression "MVar6 = SyncImagePixelCache(image,exception)" identifier = (call_expression "SyncImagePixelCache(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (if_statement "if (MVar6 != MagickFalse) {\n            image->type = BilevelType;\n            return MagickTrue;\n          }" if (parenthesized_expression "(MVar6 != MagickFalse)" ( (binary_expression "MVar6 != MagickFalse" identifier != identifier) )) (compound_statement "{\n            image->type = BilevelType;\n            return MagickTrue;\n          }" { (expression_statement "image->type = BilevelType;" (assignment_expression "image->type = BilevelType" (field_expression "image->type" identifier -> field_identifier) = identifier) ;) (return_statement "return MagickTrue;" return identifier ;) })) })) })) (return_statement "return MagickFalse;" return identifier ;) })) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" 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 + -0x3fe0" identifier + number_literal) ))) ;) (expression_statement "unaff_s0 = image;" (assignment_expression "unaff_s0 = image" identifier = identifier) ;) })) (expression_statement "exception_00 = (ExceptionInfo *)0x5af;" (assignment_expression "exception_00 = (ExceptionInfo *)0x5af" identifier = (cast_expression "(ExceptionInfo *)0x5af" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "colorspace = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "colorspace = 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 "image_00 = (Image *)(PTR_LAB_003a88e0 + 0xdd0);" (assignment_expression "image_00 = (Image *)(PTR_LAB_003a88e0 + 0xdd0)" identifier = (cast_expression "(Image *)(PTR_LAB_003a88e0 + 0xdd0)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0xdd0)" ( (binary_expression "PTR_LAB_003a88e0 + 0xdd0" identifier + number_literal) )))) ;) (expression_statement "puVar33 = PTR___assert_fail_003a9608;" (assignment_expression "puVar33 = 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 "()" ( ))) ;) (if_statement "if (image_00 == (Image *)0x0) {\n    (**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = image_00;\n    if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }\n  }" if (parenthesized_expression "(image_00 == (Image *)0x0)" ( (binary_expression "image_00 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010);\n  }" { (expression_statement "(**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010);" (call_expression "(**(code **)(puVar33 + 0x33a644))\n              (*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010)" (parenthesized_expression "(**(code **)(puVar33 + 0x33a644))" ( (pointer_expression "**(code **)(puVar33 + 0x33a644)" * (pointer_expression "*(code **)(puVar33 + 0x33a644)" * (cast_expression "(code **)(puVar33 + 0x33a644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x33a644)" ( (binary_expression "puVar33 + 0x33a644" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar33 + 0x33991c) + 0xdd0,*(int *)(puVar33 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar33 + 0x339924) + -0x4010)" ( (binary_expression "*(int *)(puVar33 + 0x33991c) + 0xdd0" (pointer_expression "*(int *)(puVar33 + 0x33991c)" * (cast_expression "(int *)(puVar33 + 0x33991c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x33991c)" ( (binary_expression "puVar33 + 0x33991c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar33 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar33 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    unaff_s0 = image_00;\n    if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = image_00;\n    if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }\n  }" { (expression_statement "unaff_s0 = image_00;" (assignment_expression "unaff_s0 = image_00" identifier = identifier) ;) (if_statement "if (image_00->signature == 0xabacadab) {\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }" if (parenthesized_expression "(image_00->signature == 0xabacadab)" ( (binary_expression "image_00->signature == 0xabacadab" (field_expression "image_00->signature" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);\n      (**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);\n      if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }\n      if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }\n      MVar6 = TransformsRGBImage(image_00,exception_00);\n      return MVar6;\n    }" { (if_statement "if (image_00->debug == MagickFalse) {\n        puVar7 = (undefined *)image_00->colorspace;\n      }\n      else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }" if (parenthesized_expression "(image_00->debug == MagickFalse)" ( (binary_expression "image_00->debug == MagickFalse" (field_expression "image_00->debug" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        puVar7 = (undefined *)image_00->colorspace;\n      }" { (expression_statement "puVar7 = (undefined *)image_00->colorspace;" (assignment_expression "puVar7 = (undefined *)image_00->colorspace" identifier = (cast_expression "(undefined *)image_00->colorspace" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image_00->colorspace" identifier -> field_identifier))) ;) }) (else_clause "else {\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }" else (compound_statement "{\n        (**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);\n        puVar7 = (undefined *)image_00->colorspace;\n      }" { (expression_statement "(**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8);" (call_expression "(**(code **)(puVar33 + 0x33a21c))\n                  (0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8)" (parenthesized_expression "(**(code **)(puVar33 + 0x33a21c))" ( (pointer_expression "**(code **)(puVar33 + 0x33a21c)" * (pointer_expression "*(code **)(puVar33 + 0x33a21c)" * (cast_expression "(code **)(puVar33 + 0x33a21c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x33a21c)" ( (binary_expression "puVar33 + 0x33a21c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar33 + 0x339924) + -0x5970,\n                   *(int *)(puVar33 + 0x339924) + -0x402c,0x5e8)" ( number_literal , (binary_expression "*(int *)(puVar33 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar33 + 0x339924) + -0x402c" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar7 = (undefined *)image_00->colorspace;" (assignment_expression "puVar7 = (undefined *)image_00->colorspace" identifier = (cast_expression "(undefined *)image_00->colorspace" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image_00->colorspace" identifier -> field_identifier))) ;) }))) (if_statement "if (puVar7 == colorspace) {\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }" if (parenthesized_expression "(puVar7 == colorspace)" ( (binary_expression "puVar7 == colorspace" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);\n        return MVar6;\n      }" { comment comment (expression_statement "MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00);" (assignment_expression "MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00)" identifier = (call_expression "(**(code **)(puVar33 + 0x339d7c))(image_00,colorspace,exception_00)" (parenthesized_expression "(**(code **)(puVar33 + 0x339d7c))" ( (pointer_expression "**(code **)(puVar33 + 0x339d7c)" * (pointer_expression "*(code **)(puVar33 + 0x339d7c)" * (cast_expression "(code **)(puVar33 + 0x339d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x339d7c)" ( (binary_expression "puVar33 + 0x339d7c" identifier + number_literal) ))))) )) (argument_list "(image_00,colorspace,exception_00)" ( identifier , identifier , identifier )))) ;) (return_statement "return MVar6;" return identifier ;) })) (expression_statement "(**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890);" (call_expression "(**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x5890)" (parenthesized_expression "(**(code **)(puVar33 + 0x33a864))" ( (pointer_expression "**(code **)(puVar33 + 0x33a864)" * (pointer_expression "*(code **)(puVar33 + 0x33a864)" * (cast_expression "(code **)(puVar33 + 0x33a864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x33a864)" ( (binary_expression "puVar33 + 0x33a864" identifier + number_literal) ))))) )) (argument_list "(image_00,*(int *)(puVar33 + 0x339924) + -0x5890)" ( identifier , (binary_expression "*(int *)(puVar33 + 0x339924) + -0x5890" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c);" (call_expression "(**(code **)(puVar33 + 0x33a864))(image_00,*(int *)(puVar33 + 0x339924) + -0x588c)" (parenthesized_expression "(**(code **)(puVar33 + 0x33a864))" ( (pointer_expression "**(code **)(puVar33 + 0x33a864)" * (pointer_expression "*(code **)(puVar33 + 0x33a864)" * (cast_expression "(code **)(puVar33 + 0x33a864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x33a864)" ( (binary_expression "puVar33 + 0x33a864" identifier + number_literal) ))))) )) (argument_list "(image_00,*(int *)(puVar33 + 0x339924) + -0x588c)" ( identifier , (binary_expression "*(int *)(puVar33 + 0x339924) + -0x588c" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (colorspace == (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }" if (parenthesized_expression "(colorspace == (undefined *)0x0)" ( (binary_expression "colorspace == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);\n        return MVar6;\n      }" { comment comment (expression_statement "MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00);" (assignment_expression "MVar6 = (**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00)" identifier = (call_expression "(**(code **)(puVar33 + 0x339d7c))(image_00,0,exception_00)" (parenthesized_expression "(**(code **)(puVar33 + 0x339d7c))" ( (pointer_expression "**(code **)(puVar33 + 0x339d7c)" * (pointer_expression "*(code **)(puVar33 + 0x339d7c)" * (cast_expression "(code **)(puVar33 + 0x339d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x339d7c)" ( (binary_expression "puVar33 + 0x339d7c" identifier + number_literal) ))))) )) (argument_list "(image_00,0,exception_00)" ( identifier , number_literal , identifier )))) ;) (return_statement "return MVar6;" return identifier ;) })) (if_statement "if ((undefined *)0x1 < colorspace + -0x17) {\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }" if (parenthesized_expression "((undefined *)0x1 < colorspace + -0x17)" ( (binary_expression "(undefined *)0x1 < colorspace + -0x17" (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "colorspace + -0x17" identifier + number_literal)) )) (compound_statement "{\n        if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }\n        MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);\n        if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }\n        return MVar6;\n      }" { (if_statement "if (image_00->colorspace - sRGBColorspace < 2) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }" if (parenthesized_expression "(image_00->colorspace - sRGBColorspace < 2)" ( (binary_expression "image_00->colorspace - sRGBColorspace < 2" (binary_expression "image_00->colorspace - sRGBColorspace" (field_expression "image_00->colorspace" identifier -> field_identifier) - identifier) < number_literal) )) (compound_statement "{\n          MVar6 = MagickTrue;\n        }" { (expression_statement "MVar6 = MagickTrue;" (assignment_expression "MVar6 = MagickTrue" identifier = identifier) ;) }) (else_clause "else {\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }" else (compound_statement "{\n          MVar6 = TransformsRGBImage(image_00,exception_00);\n          if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }\n        }" { (expression_statement "MVar6 = TransformsRGBImage(image_00,exception_00);" (assignment_expression "MVar6 = TransformsRGBImage(image_00,exception_00)" identifier = (call_expression "TransformsRGBImage(image_00,exception_00)" identifier (argument_list "(image_00,exception_00)" ( identifier , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) {\n            return MagickFalse;\n          }" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (compound_statement "{\n            return MagickFalse;\n          }" { (return_statement "return MagickFalse;" return identifier ;) })) }))) (expression_statement "MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00);" (assignment_expression "MVar8 = sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00)" identifier = (call_expression "sRGBTransformImage(image_00,(ColorspaceType)colorspace,exception_00)" identifier (argument_list "(image_00,(ColorspaceType)colorspace,exception_00)" ( identifier , (cast_expression "(ColorspaceType)colorspace" ( (type_descriptor "ColorspaceType" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (MVar8 == MagickFalse) {\n          return MagickFalse;\n        }" if (parenthesized_expression "(MVar8 == MagickFalse)" ( (binary_expression "MVar8 == MagickFalse" identifier == identifier) )) (compound_statement "{\n          return MagickFalse;\n        }" { (return_statement "return MagickFalse;" return identifier ;) })) (return_statement "return MVar6;" return identifier ;) })) (expression_statement "MVar6 = TransformsRGBImage(image_00,exception_00);" (assignment_expression "MVar6 = TransformsRGBImage(image_00,exception_00)" identifier = (call_expression "TransformsRGBImage(image_00,exception_00)" identifier (argument_list "(image_00,exception_00)" ( identifier , identifier )))) ;) (return_statement "return MVar6;" return identifier ;) })) }))) (expression_statement "uVar4 = 0x5e6;" (assignment_expression "uVar4 = 0x5e6" identifier = number_literal) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x33a644);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x33a644)" identifier = (pointer_expression "*(code **)(puVar33 + 0x33a644)" * (cast_expression "(code **)(puVar33 + 0x33a644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x33a644)" ( (binary_expression "puVar33 + 0x33a644" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(puVar33 + 0x339924) + -0x4010;" (assignment_expression "iVar21 = *(int *)(puVar33 + 0x339924) + -0x4010" identifier = (binary_expression "*(int *)(puVar33 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar17 = *(int *)(puVar33 + 0x339924) + -0x5970;" (assignment_expression "iVar17 = *(int *)(puVar33 + 0x339924) + -0x5970" identifier = (binary_expression "*(int *)(puVar33 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = *(int *)(puVar33 + 0x339924) + -0x3784;" (assignment_expression "iVar5 = *(int *)(puVar33 + 0x339924) + -0x3784" identifier = (binary_expression "*(int *)(puVar33 + 0x339924) + -0x3784" (pointer_expression "*(int *)(puVar33 + 0x339924)" * (cast_expression "(int *)(puVar33 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x339924)" ( (binary_expression "puVar33 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_e0 = pcVar34 + 0x3416c0;" (assignment_expression "pcStack_e0 = pcVar34 + 0x3416c0" identifier = (binary_expression "pcVar34 + 0x3416c0" identifier + number_literal)) ;) (expression_statement "dVar36 = *(double *)(iVar17 + 0x248);" (assignment_expression "dVar36 = *(double *)(iVar17 + 0x248)" identifier = (pointer_expression "*(double *)(iVar17 + 0x248)" * (cast_expression "(double *)(iVar17 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x248)" ( (binary_expression "iVar17 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = *(double *)(iVar5 + 0x248);" (assignment_expression "dVar45 = *(double *)(iVar5 + 0x248)" identifier = (pointer_expression "*(double *)(iVar5 + 0x248)" * (cast_expression "(double *)(iVar5 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x248)" ( (binary_expression "iVar5 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar31 = *(int **)(pcVar34 + 0x33a040);" (assignment_expression "piVar31 = *(int **)(pcVar34 + 0x33a040)" identifier = (pointer_expression "*(int **)(pcVar34 + 0x33a040)" * (cast_expression "(int **)(pcVar34 + 0x33a040)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x33a040)" ( (binary_expression "pcVar34 + 0x33a040" identifier + number_literal) ))))) ;) (expression_statement "iStack_9c = *piVar31;" (assignment_expression "iStack_9c = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (if_statement "if (dVar36 < dVar45) {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar45 = dVar45 * dVar45;\n  }\n  else {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }\n  }" if (parenthesized_expression "(dVar36 < dVar45)" ( (binary_expression "dVar36 < dVar45" identifier < identifier) )) (compound_statement "{\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar45 = dVar45 * dVar45;\n  }" { (expression_statement "iVar12 = *(int *)(pcVar34 + 0x3396f8);" (assignment_expression "iVar12 = *(int *)(pcVar34 + 0x3396f8)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x3396f8)" * (cast_expression "(int *)(pcVar34 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3396f8)" ( (binary_expression "pcVar34 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" if (parenthesized_expression "(dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8))" ( (binary_expression "dVar45 <= *(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" identifier <= (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(pcVar34 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar34 + 0x3396f8)" * (cast_expression "(int *)(pcVar34 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3396f8)" ( (binary_expression "pcVar34 + 0x3396f8" identifier + number_literal) )))) + number_literal) ))))) )) (goto_statement "goto LAB_0006f270;" goto statement_identifier ;)) (labeled_statement "LAB_0006f470:\n    dVar45 = dVar45 * dVar45;" statement_identifier : (expression_statement "dVar45 = dVar45 * dVar45;" (assignment_expression "dVar45 = dVar45 * dVar45" identifier = (binary_expression "dVar45 * dVar45" identifier * identifier)) ;)) }) (else_clause "else {\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }\n  }" else (compound_statement "{\n    iVar12 = *(int *)(pcVar34 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }\n  }" { (expression_statement "iVar12 = *(int *)(pcVar34 + 0x3396f8);" (assignment_expression "iVar12 = *(int *)(pcVar34 + 0x3396f8)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x3396f8)" * (cast_expression "(int *)(pcVar34 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3396f8)" ( (binary_expression "pcVar34 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36) {\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }\n    else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36)" ( (binary_expression "*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8) < dVar36" (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(pcVar34 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar34 + 0x3396f8)" * (cast_expression "(int *)(pcVar34 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3396f8)" ( (binary_expression "pcVar34 + 0x3396f8" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n      if (dVar36 < dVar45) goto LAB_0006f470;\n      dVar45 = dVar36 * dVar36;\n    }" { (if_statement "if (dVar36 < dVar45) goto LAB_0006f470;" if (parenthesized_expression "(dVar36 < dVar45)" ( (binary_expression "dVar36 < dVar45" identifier < identifier) )) (goto_statement "goto LAB_0006f470;" goto statement_identifier ;)) (expression_statement "dVar45 = dVar36 * dVar36;" (assignment_expression "dVar45 = dVar36 * dVar36" identifier = (binary_expression "dVar36 * dVar36" identifier * identifier)) ;) }) (else_clause "else {\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }" else (compound_statement "{\nLAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);\n    }" { (labeled_statement "LAB_0006f270:\n      dVar45 = *(double *)(iVar12 + -0x5ad0);" statement_identifier : (expression_statement "dVar45 = *(double *)(iVar12 + -0x5ad0);" (assignment_expression "dVar45 = *(double *)(iVar12 + -0x5ad0)" identifier = (pointer_expression "*(double *)(iVar12 + -0x5ad0)" * (cast_expression "(double *)(iVar12 + -0x5ad0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x5ad0)" ( (binary_expression "iVar12 + -0x5ad0" identifier + number_literal) ))))) ;)) }))) }))) (expression_statement "uVar3 = *(uint *)(iVar5 + 0x1c);" (assignment_expression "uVar3 = *(uint *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c)) {\n    uVar3 = *(uint *)(iVar17 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c))" ( (binary_expression "*(uint *)(iVar5 + 0x1c) <= *(uint *)(iVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar17 + 0x1c)" * (cast_expression "(uint *)(iVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1c)" ( (binary_expression "iVar17 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar3 = *(uint *)(iVar17 + 0x1c);\n  }" { (expression_statement "uVar3 = *(uint *)(iVar17 + 0x1c);" (assignment_expression "uVar3 = *(uint *)(iVar17 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar17 + 0x1c)" * (cast_expression "(uint *)(iVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1c)" ( (binary_expression "iVar17 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar9 = *(uint *)(iVar5 + 0x18);" (assignment_expression "uVar9 = *(uint *)(iVar5 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18)) {\n    uVar9 = *(uint *)(iVar17 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18))" ( (binary_expression "*(uint *)(iVar5 + 0x18) <= *(uint *)(iVar17 + 0x18)" (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar9 = *(uint *)(iVar17 + 0x18);\n  }" { (expression_statement "uVar9 = *(uint *)(iVar17 + 0x18);" (assignment_expression "uVar9 = *(uint *)(iVar17 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "pIStack_98 = unaff_s0;" (assignment_expression "pIStack_98 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar10 = (**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21);" (assignment_expression "uVar10 = (**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21)" identifier = (call_expression "(**(code **)(pcVar34 + 0x33a564))(iVar5,iVar21)" (parenthesized_expression "(**(code **)(pcVar34 + 0x33a564))" ( (pointer_expression "**(code **)(pcVar34 + 0x33a564)" * (pointer_expression "*(code **)(pcVar34 + 0x33a564)" * (cast_expression "(code **)(pcVar34 + 0x33a564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x33a564)" ( (binary_expression "pcVar34 + 0x33a564" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar21)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = (**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21);" (assignment_expression "uVar11 = (**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x715c))(iVar17,iVar21)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x715c))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x715c)" * (pointer_expression "*(code **)(pcStack_e0 + -0x715c)" * (cast_expression "(code **)(pcStack_e0 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x715c)" ( (binary_expression "pcStack_e0 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(iVar17,iVar21)" ( identifier , identifier )))) ;) (expression_statement "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5);" (assignment_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&\n     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))) {\n    (**(code **)(pcStack_e0 + -0x7774))(7);\n    uVar29 = uVar3;\n    if ((int)uVar3 < 0) {\n      uVar29 = uVar3 + 0x3f;\n    }\n    pdVar18 = (double *)((int)uVar29 >> 6);\n    if (extraout_v1 < (int)pdVar18) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar3 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar18 = (double *)0x1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar49 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&\n     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3))))" ( (binary_expression "((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)) &&\n     ((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))" (parenthesized_expression "((iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3))" ( (binary_expression "(iVar12 == 4) || (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)" (parenthesized_expression "(iVar12 == 4)" ( (binary_expression "iVar12 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)" ( (comma_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3" (assignment_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) , (binary_expression "iVar12 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)))" ( (parenthesized_expression "(iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3))" ( (comma_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)" (assignment_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) , (binary_expression "iVar12 == 4 ||\n      (iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)" (binary_expression "iVar12 == 4" identifier == number_literal) || (parenthesized_expression "(iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3)" ( (comma_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5), iVar12 == 3" (assignment_expression "iVar12 = (**(code **)(pcStack_e0 + -0x73fc))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) , (binary_expression "iVar12 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcStack_e0 + -0x7774))(7);\n    uVar29 = uVar3;\n    if ((int)uVar3 < 0) {\n      uVar29 = uVar3 + 0x3f;\n    }\n    pdVar18 = (double *)((int)uVar29 >> 6);\n    if (extraout_v1 < (int)pdVar18) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar3 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar18 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar29 = uVar3;" (assignment_expression "uVar29 = uVar3" identifier = identifier) ;) (if_statement "if ((int)uVar3 < 0) {\n      uVar29 = uVar3 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar3 < 0)" ( (binary_expression "(int)uVar3 < 0" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar29 = uVar3 + 0x3f;\n    }" { (expression_statement "uVar29 = uVar3 + 0x3f;" (assignment_expression "uVar29 = uVar3 + 0x3f" identifier = (binary_expression "uVar3 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar18 = (double *)((int)uVar29 >> 6);" (assignment_expression "pdVar18 = (double *)((int)uVar29 >> 6)" identifier = (cast_expression "(double *)((int)uVar29 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)uVar29 >> 6)" ( (binary_expression "(int)uVar29 >> 6" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar18) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar3 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < (int)pdVar18)" ( (binary_expression "extraout_v1 < (int)pdVar18" identifier < (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar18 = pdStack_d4;\n    }" { (expression_statement "pdStack_d4 = pdVar18;" (assignment_expression "pdStack_d4 = pdVar18" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 "pdVar18 = pdStack_d4;" (assignment_expression "pdVar18 = pdStack_d4" identifier = identifier) ;) }) (else_clause "else {\n      bVar1 = (int)uVar3 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar3 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar3 < 0x80;" (assignment_expression "bVar1 = (int)uVar3 < 0x80" identifier = (binary_expression "(int)uVar3 < 0x80" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar18 = (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_d4 = pdVar18;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar18 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" { (expression_statement "pdStack_d4 = pdVar18;" (assignment_expression "pdStack_d4 = pdVar18" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar18 = pdStack_d4;" (assignment_expression "pdVar18 = pdStack_d4" identifier = identifier) ;) (if_statement "if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" if (parenthesized_expression "(extraout_v1_01 < (int)pdStack_d4)" ( (binary_expression "extraout_v1_01 < (int)pdStack_d4" identifier < (cast_expression "(int)pdStack_d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" { (expression_statement "pcVar34 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar34 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f4b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      pdVar18 = (double *)0x1;\n    }" else (compound_statement "{\n      pdVar18 = (double *)0x1;\n    }" { (expression_statement "pdVar18 = (double *)0x1;" (assignment_expression "pdVar18 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar49 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar49 = (*pcVar34)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }\n  }" { (expression_statement "uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7);" (assignment_expression "uVar49 = (**(code **)(pcStack_e0 + -0x7774))(7)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar49 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar49 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" { (expression_statement "pcVar34 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar34 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" if (parenthesized_expression "((uint)uVar49 < 2)" ( (binary_expression "(uint)uVar49 < 2" (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar49 = (*pcVar34)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }" { (expression_statement "uVar49 = (*pcVar34)(7);" (assignment_expression "uVar49 = (*pcVar34)(7)" identifier = (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f310;" if (parenthesized_expression "((int)((ulonglong)uVar49 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar49 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f310;" goto statement_identifier ;)) (expression_statement "pcVar34 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar34 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar49 < 2) {\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }" if (parenthesized_expression "((uint)uVar49 < 2)" ( (binary_expression "(uint)uVar49 < 2" (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar18 = (double *)0x1;\n          goto LAB_0006f328;\n        }" { (expression_statement "pdVar18 = (double *)0x1;" (assignment_expression "pdVar18 = (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      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }" else (compound_statement "{\nLAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);\n    }" { (labeled_statement "LAB_0006f310:\n      pcVar34 = *(code **)(pcStack_e0 + -0x7774);" statement_identifier : (expression_statement "pcVar34 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar34 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar49 = (*pcVar34)(7);" (assignment_expression "uVar49 = (*pcVar34)(7)" identifier = (call_expression "(*pcVar34)(7)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)) {\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }\n    else {\n      pdVar18 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2))" ( (binary_expression "((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)" (parenthesized_expression "((int)((ulonglong)uVar49 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar49 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2)" ( (comma_expression "pcVar34 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar49 < 2" (assignment_expression "pcVar34 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) , (binary_expression "(uint)uVar49 < 2" (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f4b4:\n      (*pcVar34)(7);\n      pdVar18 = extraout_v1_00;\n    }" { (labeled_statement "LAB_0006f4b4:\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 "pdVar18 = extraout_v1_00;" (assignment_expression "pdVar18 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      pdVar18 = (double *)0x2;\n    }" else (compound_statement "{\n      pdVar18 = (double *)0x2;\n    }" { (expression_statement "pdVar18 = (double *)0x2;" (assignment_expression "pdVar18 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006f328:\n  uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) (expression_statement "pdVar19 = &dStack_d0;" (assignment_expression "pdVar19 = &dStack_d0" identifier = (pointer_expression "&dStack_d0" & identifier)) ;) (expression_statement "MStack_a8 = MagickTrue;" (assignment_expression "MStack_a8 = MagickTrue" identifier = identifier) ;) (expression_statement "dStack_d0 = dVar45;" (assignment_expression "dStack_d0 = dVar45" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar5;" (assignment_expression "iStack_c8 = iVar5" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar17;" (assignment_expression "iStack_c4 = iVar17" identifier = identifier) ;) (expression_statement "uStack_c0 = uVar4;" (assignment_expression "uStack_c0 = uVar4" identifier = identifier) ;) (expression_statement "iStack_bc = iVar21;" (assignment_expression "iStack_bc = iVar21" identifier = identifier) ;) (expression_statement "uStack_b8 = uVar10;" (assignment_expression "uStack_b8 = uVar10" identifier = identifier) ;) (expression_statement "uStack_b4 = uVar11;" (assignment_expression "uStack_b4 = uVar11" identifier = identifier) ;) (expression_statement "uStack_b0 = uVar9;" (assignment_expression "uStack_b0 = uVar9" identifier = identifier) ;) (expression_statement "uStack_ac = uVar3;" (assignment_expression "uStack_ac = uVar3" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7718))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7718)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7718)" * (cast_expression "(code **)(pcStack_e0 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7718)" ( (binary_expression "pcStack_e0 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" ( (binary_expression "*(int *)(pcStack_e0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(pcStack_e0 + -0x7f78)" * (cast_expression "(int *)(pcStack_e0 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_e0 + -0x7f78)" ( (binary_expression "pcStack_e0 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "MVar6 = MStack_a8;" (assignment_expression "MVar6 = MStack_a8" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar11);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar11)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" * (cast_expression "(code **)(pcStack_e0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x79bc)" ( (binary_expression "pcStack_e0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar10);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar10)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" * (cast_expression "(code **)(pcStack_e0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x79bc)" ( (binary_expression "pcStack_e0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))) ;) (if_statement "if (iStack_9c == *piVar31) {\n    return MVar6;\n  }" if (parenthesized_expression "(iStack_9c == *piVar31)" ( (binary_expression "iStack_9c == *piVar31" identifier == (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n    return MVar6;\n  }" { (return_statement "return MVar6;" return identifier ;) })) (expression_statement "pcVar34 = *(code **)(pcStack_e0 + -0x784c);" (assignment_expression "pcVar34 = *(code **)(pcStack_e0 + -0x784c)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x784c)" * (cast_expression "(code **)(pcStack_e0 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x784c)" ( (binary_expression "pcStack_e0 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar35 = GetMeanAbsoluteDistortion;" (assignment_expression "pcVar35 = GetMeanAbsoluteDistortion" identifier = identifier) ;) (expression_statement "iVar5 = iStack_9c;" (assignment_expression "iVar5 = iStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar30 = *(int **)(pcVar34 + 0x339d18);" (assignment_expression "piVar30 = *(int **)(pcVar34 + 0x339d18)" identifier = (pointer_expression "*(int **)(pcVar34 + 0x339d18)" * (cast_expression "(int **)(pcVar34 + 0x339d18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339d18)" ( (binary_expression "pcVar34 + 0x339d18" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = *(uint *)(iVar5 + 0x1c);" (assignment_expression "uVar29 = *(uint *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c)) {\n    uVar29 = *(uint *)((int)pdVar19 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c))" ( (binary_expression "*(uint *)(iVar5 + 0x1c) <= *(uint *)((int)pdVar19 + 0x1c)" (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)((int)pdVar19 + 0x1c)" * (cast_expression "(uint *)((int)pdVar19 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar19 + 0x1c)" ( (binary_expression "(int)pdVar19 + 0x1c" (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    uVar29 = *(uint *)((int)pdVar19 + 0x1c);\n  }" { (expression_statement "uVar29 = *(uint *)((int)pdVar19 + 0x1c);" (assignment_expression "uVar29 = *(uint *)((int)pdVar19 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pdVar19 + 0x1c)" * (cast_expression "(uint *)((int)pdVar19 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar19 + 0x1c)" ( (binary_expression "(int)pdVar19 + 0x1c" (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "uVar28 = *(uint *)(iVar5 + 0x18);" (assignment_expression "uVar28 = *(uint *)(iVar5 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3)) {\n    uVar28 = *(uint *)(pdVar19 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3))" ( (binary_expression "*(uint *)(iVar5 + 0x18) <= *(uint *)(pdVar19 + 3)" (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(pdVar19 + 3)" * (cast_expression "(uint *)(pdVar19 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar19 + 3)" ( (binary_expression "pdVar19 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar28 = *(uint *)(pdVar19 + 3);\n  }" { (expression_statement "uVar28 = *(uint *)(pdVar19 + 3);" (assignment_expression "uVar28 = *(uint *)(pdVar19 + 3)" identifier = (pointer_expression "*(uint *)(pdVar19 + 3)" * (cast_expression "(uint *)(pdVar19 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar19 + 3)" ( (binary_expression "pdVar19 + 3" identifier + number_literal) ))))) ;) })) (expression_statement "MStack_118 = MVar6;" (assignment_expression "MStack_118 = MVar6" identifier = identifier) ;) (expression_statement "iStack_11c = *piVar30;" (assignment_expression "iStack_11c = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (expression_statement "iStack_114 = iVar17;" (assignment_expression "iStack_114 = iVar17" identifier = identifier) ;) (expression_statement "uStack_110 = uVar3;" (assignment_expression "uStack_110 = uVar3" identifier = identifier) ;) (expression_statement "iStack_10c = iVar21;" (assignment_expression "iStack_10c = iVar21" identifier = identifier) ;) (expression_statement "uStack_108 = uVar9;" (assignment_expression "uStack_108 = uVar9" identifier = identifier) ;) (expression_statement "piStack_104 = piVar31;" (assignment_expression "piStack_104 = piVar31" identifier = identifier) ;) (expression_statement "uStack_100 = uVar4;" (assignment_expression "uStack_100 = uVar4" identifier = identifier) ;) (expression_statement "uStack_fc = uVar10;" (assignment_expression "uStack_fc = uVar10" identifier = identifier) ;) (expression_statement "uStack_f8 = uVar11;" (assignment_expression "uStack_f8 = uVar11" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar35;" (assignment_expression "pcStack_f4 = pcVar35" identifier = identifier) ;) (expression_statement "uVar4 = (**(code **)(pcVar34 + 0x33a23c))();" (assignment_expression "uVar4 = (**(code **)(pcVar34 + 0x33a23c))()" identifier = (call_expression "(**(code **)(pcVar34 + 0x33a23c))()" (parenthesized_expression "(**(code **)(pcVar34 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar34 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar34 + 0x33a23c)" * (cast_expression "(code **)(pcVar34 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x33a23c)" ( (binary_expression "pcVar34 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar10 = (**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22);" (assignment_expression "uVar10 = (**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22)" identifier = (call_expression "(**(code **)(pcVar34 + 0x33a23c))(pdVar19,uVar22)" (parenthesized_expression "(**(code **)(pcVar34 + 0x33a23c))" ( (pointer_expression "**(code **)(pcVar34 + 0x33a23c)" * (pointer_expression "*(code **)(pcVar34 + 0x33a23c)" * (cast_expression "(code **)(pcVar34 + 0x33a23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x33a23c)" ( (binary_expression "pcVar34 + 0x33a23c" identifier + number_literal) ))))) )) (argument_list "(pdVar19,uVar22)" ( identifier , identifier )))) ;) (expression_statement "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5);" (assignment_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339f9c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar34 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar34 + 0x339f9c)" * (cast_expression "(code **)(pcVar34 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339f9c)" ( (binary_expression "pcVar34 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&\n     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))) {\n    (**(code **)(pcVar34 + 0x339c24))(7);\n    uVar3 = uVar29;\n    if ((int)uVar29 < 0) {\n      uVar3 = uVar29 + 0x3f;\n    }\n    iVar17 = (int)uVar3 >> 6;\n    if (extraout_v1_03 < iVar17) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar29 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar17 = 1;\n    }\n  }\n  else {\n    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }\n    uVar49 = (*pcVar35)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&\n     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3))))" ( (binary_expression "((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)) &&\n     ((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))" (parenthesized_expression "((iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3))" ( (binary_expression "(iVar17 == 4) || (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)" (parenthesized_expression "(iVar17 == 4)" ( (binary_expression "iVar17 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)" ( (comma_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3" (assignment_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339f9c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar34 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar34 + 0x339f9c)" * (cast_expression "(code **)(pcVar34 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339f9c)" ( (binary_expression "pcVar34 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) , (binary_expression "iVar17 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)))" ( (parenthesized_expression "(iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3))" ( (comma_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)" (assignment_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339f9c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar34 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar34 + 0x339f9c)" * (cast_expression "(code **)(pcVar34 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339f9c)" ( (binary_expression "pcVar34 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) , (binary_expression "iVar17 == 4 ||\n      (iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)" (binary_expression "iVar17 == 4" identifier == number_literal) || (parenthesized_expression "(iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3)" ( (comma_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5), iVar17 == 3" (assignment_expression "iVar17 = (**(code **)(pcVar34 + 0x339f9c))(iVar5)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339f9c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339f9c))" ( (pointer_expression "**(code **)(pcVar34 + 0x339f9c)" * (pointer_expression "*(code **)(pcVar34 + 0x339f9c)" * (cast_expression "(code **)(pcVar34 + 0x339f9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339f9c)" ( (binary_expression "pcVar34 + 0x339f9c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) , (binary_expression "iVar17 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar34 + 0x339c24))(7);\n    uVar3 = uVar29;\n    if ((int)uVar29 < 0) {\n      uVar3 = uVar29 + 0x3f;\n    }\n    iVar17 = (int)uVar3 >> 6;\n    if (extraout_v1_03 < iVar17) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar29 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar17 = 1;\n    }\n  }" { (expression_statement "(**(code **)(pcVar34 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar34 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar34 + 0x339c24)" * (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar3 = uVar29;" (assignment_expression "uVar3 = uVar29" identifier = identifier) ;) (if_statement "if ((int)uVar29 < 0) {\n      uVar3 = uVar29 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar29 < 0)" ( (binary_expression "(int)uVar29 < 0" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar3 = uVar29 + 0x3f;\n    }" { (expression_statement "uVar3 = uVar29 + 0x3f;" (assignment_expression "uVar3 = uVar29 + 0x3f" identifier = (binary_expression "uVar29 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar17 = (int)uVar3 >> 6;" (assignment_expression "iVar17 = (int)uVar3 >> 6" identifier = (binary_expression "(int)uVar3 >> 6" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (extraout_v1_03 < iVar17) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = (int)uVar29 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < iVar17)" ( (binary_expression "extraout_v1_03 < iVar17" identifier < identifier) )) (compound_statement "{\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcVar34 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar34 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar34 + 0x339c24)" * (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 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)uVar29 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar29 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar29 < 0x80;" (assignment_expression "bVar1 = (int)uVar29 < 0x80" identifier = (binary_expression "(int)uVar29 < 0x80" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }\n    else {\n      iVar17 = 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 **)(pcVar34 + 0x339c24))(7);\n      if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }\n    }" { (expression_statement "(**(code **)(pcVar34 + 0x339c24))(7);" (call_expression "(**(code **)(pcVar34 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar34 + 0x339c24)" * (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_05 < iVar17) {\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" if (parenthesized_expression "(extraout_v1_05 < iVar17)" ( (binary_expression "extraout_v1_05 < iVar17" identifier < identifier) )) (compound_statement "{\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        goto LAB_0006f8ac;\n      }" { (expression_statement "pcVar35 = *(code **)(pcVar34 + 0x339c24);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006f8ac;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar17 = 1;\n    }" else (compound_statement "{\n      iVar17 = 1;\n    }" { (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }\n    uVar49 = (*pcVar35)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }\n  }" else (compound_statement "{\n    uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);\n    if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }\n    uVar49 = (*pcVar35)(7);\n    if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }\n  }" { (expression_statement "uVar49 = (**(code **)(pcVar34 + 0x339c24))(7);" (assignment_expression "uVar49 = (**(code **)(pcVar34 + 0x339c24))(7)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339c24))(7)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339c24))" ( (pointer_expression "**(code **)(pcVar34 + 0x339c24)" * (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar49 >> 0x20) == 0) {\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }\n    else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar49 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar49 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n      if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }\n    }" { (expression_statement "pcVar35 = *(code **)(pcVar34 + 0x339c24);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar49 < 2) {\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }" if (parenthesized_expression "((uint)uVar49 < 2)" ( (binary_expression "(uint)uVar49 < 2" (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar49 = (*pcVar35)(7);\n        if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;\n        pcVar35 = *(code **)(pcVar34 + 0x339c24);\n        if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }\n      }" { (expression_statement "uVar49 = (*pcVar35)(7);" (assignment_expression "uVar49 = (*pcVar35)(7)" identifier = (call_expression "(*pcVar35)(7)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar49 >> 0x20) != 0) goto LAB_0006f60c;" if (parenthesized_expression "((int)((ulonglong)uVar49 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar49 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006f60c;" goto statement_identifier ;)) (expression_statement "pcVar35 = *(code **)(pcVar34 + 0x339c24);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar49 < 2) {\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }" if (parenthesized_expression "((uint)uVar49 < 2)" ( (binary_expression "(uint)uVar49 < 2" (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar17 = 1;\n          goto LAB_0006f624;\n        }" { (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006f624;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }" else (compound_statement "{\nLAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);\n    }" { (labeled_statement "LAB_0006f60c:\n      pcVar35 = *(code **)(pcVar34 + 0x339c24);" statement_identifier : (expression_statement "pcVar35 = *(code **)(pcVar34 + 0x339c24);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar49 = (*pcVar35)(7);" (assignment_expression "uVar49 = (*pcVar35)(7)" identifier = (call_expression "(*pcVar35)(7)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)) {\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }\n    else {\n      iVar17 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2))" ( (binary_expression "((int)((ulonglong)uVar49 >> 0x20) == 0) &&\n       (pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)" (parenthesized_expression "((int)((ulonglong)uVar49 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar49 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2)" ( (comma_expression "pcVar35 = *(code **)(pcVar34 + 0x339c24), (uint)uVar49 < 2" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339c24)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339c24)" * (cast_expression "(code **)(pcVar34 + 0x339c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c24)" ( (binary_expression "pcVar34 + 0x339c24" identifier + number_literal) ))))) , (binary_expression "(uint)uVar49 < 2" (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_0006f8ac:\n      (*pcVar35)(7);\n      iVar17 = extraout_v1_04;\n    }" { (labeled_statement "LAB_0006f8ac:\n      (*pcVar35)(7);" statement_identifier : (expression_statement "(*pcVar35)(7);" (call_expression "(*pcVar35)(7)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar17 = extraout_v1_04;" (assignment_expression "iVar17 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n      iVar17 = 2;\n    }" else (compound_statement "{\n      iVar17 = 2;\n    }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006f624:\n  piVar23 = (int *)0x0;" statement_identifier : (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piVar31 = &iStack_150;" (assignment_expression "piVar31 = &iStack_150" identifier = (pointer_expression "&iStack_150" & identifier)) ;) (expression_statement "MStack_124 = MagickTrue;" (assignment_expression "MStack_124 = MagickTrue" identifier = identifier) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "iStack_150 = 0;" (assignment_expression "iStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" identifier = identifier) ;) (expression_statement "pdStack_144 = pdVar19;" (assignment_expression "pdStack_144 = pdVar19" identifier = identifier) ;) (expression_statement "pdStack_140 = pdVar18;" (assignment_expression "pdStack_140 = pdVar18" identifier = identifier) ;) (expression_statement "uStack_13c = uVar22;" (assignment_expression "uStack_13c = uVar22" identifier = identifier) ;) (expression_statement "uStack_138 = uVar4;" (assignment_expression "uStack_138 = uVar4" identifier = identifier) ;) (expression_statement "uStack_134 = uVar10;" (assignment_expression "uStack_134 = uVar10" identifier = identifier) ;) (expression_statement "uStack_12c = uVar28;" (assignment_expression "uStack_12c = uVar28" identifier = identifier) ;) (expression_statement "uStack_128 = uVar29;" (assignment_expression "uStack_128 = uVar29" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar34 + 0x339c80))(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17);" (call_expression "(**(code **)(pcVar34 + 0x339c80))(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339c80))" ( (pointer_expression "**(code **)(pcVar34 + 0x339c80)" * (pointer_expression "*(code **)(pcVar34 + 0x339c80)" * (cast_expression "(code **)(pcVar34 + 0x339c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339c80)" ( (binary_expression "pcVar34 + 0x339c80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar34 + 0x339420) + 0x2498,piVar31,iVar17)" ( (binary_expression "*(int *)(pcVar34 + 0x339420) + 0x2498" (pointer_expression "*(int *)(pcVar34 + 0x339420)" * (cast_expression "(int *)(pcVar34 + 0x339420)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x339420)" ( (binary_expression "pcVar34 + 0x339420" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "MVar6 = MStack_124;" (assignment_expression "MVar6 = MStack_124" identifier = identifier) ;) (expression_statement "uVar11 = uStack_14c;" (assignment_expression "uVar11 = uStack_14c" identifier = identifier) ;) (expression_statement "iVar17 = iStack_150;" (assignment_expression "iVar17 = iStack_150" identifier = identifier) ;) (expression_statement "dVar36 = (double)CONCAT44(iStack_150,uStack_14c);" (assignment_expression "dVar36 = (double)CONCAT44(iStack_150,uStack_14c)" identifier = (cast_expression "(double)CONCAT44(iStack_150,uStack_14c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iStack_150,uStack_14c)" identifier (argument_list "(iStack_150,uStack_14c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar34 + 0x3399dc))(uVar10);" (call_expression "(**(code **)(pcVar34 + 0x3399dc))(uVar10)" (parenthesized_expression "(**(code **)(pcVar34 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar34 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar34 + 0x3399dc)" * (cast_expression "(code **)(pcVar34 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x3399dc)" ( (binary_expression "pcVar34 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar34 + 0x3399dc))(uVar4);" (call_expression "(**(code **)(pcVar34 + 0x3399dc))(uVar4)" (parenthesized_expression "(**(code **)(pcVar34 + 0x3399dc))" ( (pointer_expression "**(code **)(pcVar34 + 0x3399dc)" * (pointer_expression "*(code **)(pcVar34 + 0x3399dc)" * (cast_expression "(code **)(pcVar34 + 0x3399dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x3399dc)" ( (binary_expression "pcVar34 + 0x3399dc" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar36) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar36;\n  }\n  else {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar17,uVar11);\n  }" if (parenthesized_expression "(0.0 <= dVar36)" ( (binary_expression "0.0 <= dVar36" number_literal <= identifier) )) (compound_statement "{\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar36;\n  }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_158 = dVar36;" (assignment_expression "dStack_158 = dVar36" identifier = identifier) ;) }) (else_clause "else {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar17,uVar11);\n  }" else (compound_statement "{\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar17,uVar11);\n  }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x1a78)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x1a78" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_158 = -(double)CONCAT44(iVar17,uVar11);" (assignment_expression "dStack_158 = -(double)CONCAT44(iVar17,uVar11)" identifier = (unary_expression "-(double)CONCAT44(iVar17,uVar11)" - (cast_expression "(double)CONCAT44(iVar17,uVar11)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar17,uVar11)" identifier (argument_list "(iVar17,uVar11)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158) {\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;\n  }\n  else {\n    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158)" ( (binary_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8) <= dStack_158" (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;\n  }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36;" (assignment_expression "dVar45 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36" identifier = (binary_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438) / dVar36" (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);\n  }" else (compound_statement "{\n    dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);\n  }" { (expression_statement "dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8);" (assignment_expression "dVar45 = dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" identifier = (binary_expression "dVar45 / *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x13f8)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x13f8" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar19 = pdVar18;" (assignment_expression "pdVar19 = pdVar18" identifier = identifier) ;) (do_statement "do {\n    pdVar13 = pdVar19 + 1;\n    *pdVar19 = *pdVar19 * dVar45;\n    pdVar19 = pdVar13;\n  } while (pdVar18 + 0x41 != pdVar13);" do (compound_statement "{\n    pdVar13 = pdVar19 + 1;\n    *pdVar19 = *pdVar19 * dVar45;\n    pdVar19 = pdVar13;\n  }" { (expression_statement "pdVar13 = pdVar19 + 1;" (assignment_expression "pdVar13 = pdVar19 + 1" identifier = (binary_expression "pdVar19 + 1" identifier + number_literal)) ;) (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 "pdVar19 = pdVar13;" (assignment_expression "pdVar19 = pdVar13" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar18 + 0x41 != pdVar13)" ( (binary_expression "pdVar18 + 0x41 != pdVar13" (binary_expression "pdVar18 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "pdVar19 = (double *)0x0;" (assignment_expression "pdVar19 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(iVar5 + 0x2c0)) {\n    piVar23 = *(int **)(iVar5 + 0x2d0);\n    piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;\n    piVar15 = piVar23;\n    do {\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    } while (piVar15 != piVar31);\n    if (pdVar19 != (double *)0x0) {\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar5 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar5 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar5 + 0x2c0)" * (cast_expression "(int *)(iVar5 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c0)" ( (binary_expression "iVar5 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar23 = *(int **)(iVar5 + 0x2d0);\n    piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;\n    piVar15 = piVar23;\n    do {\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    } while (piVar15 != piVar31);\n    if (pdVar19 != (double *)0x0) {\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }\n  }" { (expression_statement "piVar23 = *(int **)(iVar5 + 0x2d0);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar5 + 0x2d0)" * (cast_expression "(int **)(iVar5 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x2d0)" ( (binary_expression "iVar5 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3;" (assignment_expression "piVar31 = piVar23 + *(int *)(iVar5 + 0x2c0) * 3" identifier = (binary_expression "piVar23 + *(int *)(iVar5 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar5 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar5 + 0x2c0)" * (cast_expression "(int *)(iVar5 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c0)" ( (binary_expression "iVar5 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar15 = piVar23;" (assignment_expression "piVar15 = piVar23" identifier = identifier) ;) (do_statement "do {\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    } while (piVar15 != piVar31);" do (compound_statement "{\n      if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }\n      piVar15 = piVar15 + 3;\n    }" { (if_statement "if ((piVar23[*piVar15 * 3 + 1] & 2U) != 0) {\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }" if (parenthesized_expression "((piVar23[*piVar15 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar23[*piVar15 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar23[*piVar15 * 3 + 1] & 2U)" ( (binary_expression "piVar23[*piVar15 * 3 + 1] & 2U" (subscript_expression "piVar23[*piVar15 * 3 + 1]" identifier [ (binary_expression "*piVar15 * 3 + 1" (binary_expression "*piVar15 * 3" (pointer_expression "*piVar15" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        pdVar19 = (double *)((int)pdVar19 + 1);\n      }" { (expression_statement "pdVar19 = (double *)((int)pdVar19 + 1);" (assignment_expression "pdVar19 = (double *)((int)pdVar19 + 1)" identifier = (cast_expression "(double *)((int)pdVar19 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar19 + 1)" ( (binary_expression "(int)pdVar19 + 1" (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "piVar15 = piVar15 + 3;" (assignment_expression "piVar15 = piVar15 + 3" identifier = (binary_expression "piVar15 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 != piVar31)" ( (binary_expression "piVar15 != piVar31" identifier != identifier) )) ;) (if_statement "if (pdVar19 != (double *)0x0) {\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" if (parenthesized_expression "(pdVar19 != (double *)0x0)" ( (binary_expression "pdVar19 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dVar36 = (double)(int)pdVar19;\n      if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }\n      goto LAB_0006f778;\n    }" { (expression_statement "dVar36 = (double)(int)pdVar19;" (assignment_expression "dVar36 = (double)(int)pdVar19" identifier = (cast_expression "(double)(int)pdVar19" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar19 < 0) {\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }" if (parenthesized_expression "((int)pdVar19 < 0)" ( (binary_expression "(int)pdVar19 < 0" (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);\n      }" { (expression_statement "dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418);" (assignment_expression "dVar36 = dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418)" identifier = (binary_expression "dVar36 + *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x1418)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x1418" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_0006f778;" goto statement_identifier ;) })) })) (expression_statement "dVar36 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438);" (assignment_expression "dVar36 = *(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x3393c8) + 0x1438)" ( (binary_expression "*(int *)(pcVar34 + 0x3393c8) + 0x1438" (pointer_expression "*(int *)(pcVar34 + 0x3393c8)" * (cast_expression "(int *)(pcVar34 + 0x3393c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x3393c8)" ( (binary_expression "pcVar34 + 0x3393c8" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_0006f778:\n  iVar5 = *piVar30;" statement_identifier : (expression_statement "iVar5 = *piVar30;" (assignment_expression "iVar5 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;)) (expression_statement "pdVar18[0x40] = pdVar18[0x40] / dVar36;" (assignment_expression "pdVar18[0x40] = pdVar18[0x40] / dVar36" (subscript_expression "pdVar18[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar18[0x40] / dVar36" (subscript_expression "pdVar18[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (iStack_11c == iVar5) {\n    return MVar6;\n  }" if (parenthesized_expression "(iStack_11c == iVar5)" ( (binary_expression "iStack_11c == iVar5" identifier == identifier) )) (compound_statement "{\n    return MVar6;\n  }" { (return_statement "return MVar6;" return identifier ;) })) (expression_statement "pcVar34 = *(code **)(pcVar34 + 0x339b4c);" (assignment_expression "pcVar34 = *(code **)(pcVar34 + 0x339b4c)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339b4c)" * (cast_expression "(code **)(pcVar34 + 0x339b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339b4c)" ( (binary_expression "pcVar34 + 0x339b4c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_11c;" (assignment_expression "iVar5 = iStack_11c" identifier = identifier) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar3 = *(uint *)(iVar5 + 0x1c);" (assignment_expression "uVar3 = *(uint *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7]) {\n    uVar3 = piVar31[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7])" ( (binary_expression "*(uint *)(iVar5 + 0x1c) <= (uint)piVar31[7]" (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar31[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar31[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar3 = piVar31[7];\n  }" { (expression_statement "uVar3 = piVar31[7];" (assignment_expression "uVar3 = piVar31[7]" identifier = (subscript_expression "piVar31[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar9 = *(uint *)(iVar5 + 0x18);" (assignment_expression "uVar9 = *(uint *)(iVar5 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6]) {\n    uVar9 = piVar31[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6])" ( (binary_expression "*(uint *)(iVar5 + 0x18) <= (uint)piVar31[6]" (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar31[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar31[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar9 = piVar31[6];\n  }" { (expression_statement "uVar9 = piVar31[6];" (assignment_expression "uVar9 = piVar31[6]" identifier = (subscript_expression "piVar31[6]" identifier [ number_literal ])) ;) })) (expression_statement "uVar4 = (**(code **)(pcVar34 + 0x339e44))();" (assignment_expression "uVar4 = (**(code **)(pcVar34 + 0x339e44))()" identifier = (call_expression "(**(code **)(pcVar34 + 0x339e44))()" (parenthesized_expression "(**(code **)(pcVar34 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar34 + 0x339e44)" * (pointer_expression "*(code **)(pcVar34 + 0x339e44)" * (cast_expression "(code **)(pcVar34 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339e44)" ( (binary_expression "pcVar34 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar10 = (**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23);" (assignment_expression "uVar10 = (**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339e44))(piVar31,piVar23)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339e44))" ( (pointer_expression "**(code **)(pcVar34 + 0x339e44)" * (pointer_expression "*(code **)(pcVar34 + 0x339e44)" * (cast_expression "(code **)(pcVar34 + 0x339e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339e44)" ( (binary_expression "pcVar34 + 0x339e44" identifier + number_literal) ))))) )) (argument_list "(piVar31,piVar23)" ( identifier , identifier )))) ;) (if_statement "if ((int)uVar3 < 1) {\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    MVar6 = MagickTrue;\n    dVar47 = 0.0;\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n  }\n  else {\n    iVar17 = *(int *)(pcVar34 + 0x338fd0);\n    iVar21 = *(int *)(pcVar34 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    dVar48 = *(double *)(iVar17 + 0x1438);\n    uVar29 = 0;\n    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);\n    dVar47 = 0.0;\n    pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n    dVar38 = dVar48;\n    do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);\n    MVar6 = MagickTrue;\n  }" if (parenthesized_expression "((int)uVar3 < 1)" ( (binary_expression "(int)uVar3 < 1" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    MVar6 = MagickTrue;\n    dVar47 = 0.0;\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n  }" { (expression_statement "iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(int *)(pcVar34 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x338fd0)" * (cast_expression "(int *)(pcVar34 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x338fd0)" ( (binary_expression "pcVar34 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "MVar6 = MagickTrue;" (assignment_expression "MVar6 = MagickTrue" identifier = identifier) ;) (expression_statement "dVar47 = 0.0;" (assignment_expression "dVar47 = 0.0" identifier = number_literal) ;) (expression_statement "dVar36 = dVar47;" (assignment_expression "dVar36 = dVar47" identifier = identifier) ;) (expression_statement "dVar45 = dVar47;" (assignment_expression "dVar45 = dVar47" identifier = identifier) ;) }) (else_clause "else {\n    iVar17 = *(int *)(pcVar34 + 0x338fd0);\n    iVar21 = *(int *)(pcVar34 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    dVar48 = *(double *)(iVar17 + 0x1438);\n    uVar29 = 0;\n    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);\n    dVar47 = 0.0;\n    pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n    dVar38 = dVar48;\n    do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);\n    MVar6 = MagickTrue;\n  }" else (compound_statement "{\n    iVar17 = *(int *)(pcVar34 + 0x338fd0);\n    iVar21 = *(int *)(pcVar34 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);\n    dVar48 = *(double *)(iVar17 + 0x1438);\n    uVar29 = 0;\n    uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);\n    dVar47 = 0.0;\n    pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    dVar36 = dVar47;\n    dVar45 = dVar47;\n    dVar38 = dVar48;\n    do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);\n    MVar6 = MagickTrue;\n  }" { (expression_statement "iVar17 = *(int *)(pcVar34 + 0x338fd0);" (assignment_expression "iVar17 = *(int *)(pcVar34 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x338fd0)" * (cast_expression "(int *)(pcVar34 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x338fd0)" ( (binary_expression "pcVar34 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(pcVar34 + 0x338fd0);" (assignment_expression "iVar21 = *(int *)(pcVar34 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x338fd0)" * (cast_expression "(int *)(pcVar34 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x338fd0)" ( (binary_expression "pcVar34 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_1e0 = *(int *)(pcVar34 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(int *)(pcVar34 + 0x338fd0)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x338fd0)" * (cast_expression "(int *)(pcVar34 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x338fd0)" ( (binary_expression "pcVar34 + 0x338fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar48 = *(double *)(iVar17 + 0x1438);" (assignment_expression "dVar48 = *(double *)(iVar17 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar17 + 0x1438)" * (cast_expression "(double *)(iVar17 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1438)" ( (binary_expression "iVar17 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708);" (assignment_expression "uVar46 = (ulonglong)*(uint *)(iVar21 + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar21 + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar21 + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3708)" ( (binary_expression "iVar21 + 0x3708" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = 0.0;" (assignment_expression "dVar47 = 0.0" identifier = number_literal) ;) (expression_statement "pcVar35 = *(code **)(pcVar34 + 0x339d4c);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339d4c)" * (cast_expression "(code **)(pcVar34 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339d4c)" ( (binary_expression "pcVar34 + 0x339d4c" identifier + number_literal) ))))) ;) (expression_statement "dVar36 = dVar47;" (assignment_expression "dVar36 = dVar47" identifier = identifier) ;) (expression_statement "dVar45 = dVar47;" (assignment_expression "dVar45 = dVar47" identifier = identifier) ;) (expression_statement "dVar38 = dVar48;" (assignment_expression "dVar38 = dVar48" identifier = identifier) ;) (do_statement "do {\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    } while (uVar29 != uVar3);" do (compound_statement "{\n      pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);\n      iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);\n      if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }\nLAB_0006fc4c:\n      uVar29 = uVar29 + 1;\n      pcVar35 = *(code **)(pcVar34 + 0x339d4c);\n    }" { (expression_statement "pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23);" (assignment_expression "pfVar14 = (float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23)" identifier = (cast_expression "(float *)(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar35)(uVar4,0,uVar29,uVar9,1,piVar23)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(uVar4,0,uVar29,uVar9,1,piVar23)" ( identifier , number_literal , identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23);" (assignment_expression "iVar12 = (**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23)" identifier = (call_expression "(**(code **)(pcVar34 + 0x339d4c))(uVar10,0,uVar29,uVar9,1,piVar23)" (parenthesized_expression "(**(code **)(pcVar34 + 0x339d4c))" ( (pointer_expression "**(code **)(pcVar34 + 0x339d4c)" * (pointer_expression "*(code **)(pcVar34 + 0x339d4c)" * (cast_expression "(code **)(pcVar34 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339d4c)" ( (binary_expression "pcVar34 + 0x339d4c" identifier + number_literal) ))))) )) (argument_list "(uVar10,0,uVar29,uVar9,1,piVar23)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if ((pfVar14 == (float *)0x0) || (iVar12 == 0)) {\n        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }" if (parenthesized_expression "((pfVar14 == (float *)0x0) || (iVar12 == 0))" ( (binary_expression "(pfVar14 == (float *)0x0) || (iVar12 == 0)" (parenthesized_expression "(pfVar14 == (float *)0x0)" ( (binary_expression "pfVar14 == (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        MVar6 = MagickFalse;\n        goto LAB_0006fc88;\n      }" { (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_0006fc88;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar9) {\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }" if (parenthesized_expression "(0 < (int)uVar9)" ( (binary_expression "0 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar28 = 0;\n        piVar30 = *(int **)(iVar5 + 0x2d0);\n        dVar41 = *(double *)(iStack_1e0 + 0x1440);\n        iVar32 = piVar30[0x13];\n        dVar44 = *(double *)(iVar17 + 0x1438);\n        fVar40 = *(float *)(iVar21 + 0x3708);\n        do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);\n      }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "piVar30 = *(int **)(iVar5 + 0x2d0);" (assignment_expression "piVar30 = *(int **)(iVar5 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar5 + 0x2d0)" * (cast_expression "(int **)(iVar5 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x2d0)" ( (binary_expression "iVar5 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(iStack_1e0 + 0x1440);" (assignment_expression "dVar41 = *(double *)(iStack_1e0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" * (cast_expression "(double *)(iStack_1e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1e0 + 0x1440)" ( (binary_expression "iStack_1e0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "iVar32 = piVar30[0x13];" (assignment_expression "iVar32 = piVar30[0x13]" identifier = (subscript_expression "piVar30[0x13]" identifier [ number_literal ])) ;) (expression_statement "dVar44 = *(double *)(iVar17 + 0x1438);" (assignment_expression "dVar44 = *(double *)(iVar17 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar17 + 0x1438)" * (cast_expression "(double *)(iVar17 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1438)" ( (binary_expression "iVar17 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar40 = *(float *)(iVar21 + 0x3708);" (assignment_expression "fVar40 = *(float *)(iVar21 + 0x3708)" identifier = (pointer_expression "*(float *)(iVar21 + 0x3708)" * (cast_expression "(float *)(iVar21 + 0x3708)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3708)" ( (binary_expression "iVar21 + 0x3708" identifier + number_literal) ))))) ;) (do_statement "do {\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        } while (uVar28 != uVar9);" do (compound_statement "{\n          while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }\n          dVar37 = dVar44;\n          if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }\n          dVar39 = dVar38;\n          if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }\n          iVar27 = *(int *)(iVar5 + 0x2c0);\n          if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }\n          uVar28 = uVar28 + 1;\n          pfVar14 = pfVar14 + iVar27;\n          iVar12 = iVar12 + piVar31[0xb0] * 4;\n        }" { (while_statement "while (((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))) {\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }" while (parenthesized_expression "(((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46)))))" ( (parenthesized_expression "((iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))))" ( (binary_expression "(iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)) ||\n                 ((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46)))" (parenthesized_expression "(iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40))" ( (binary_expression "iVar32 != 0 && (pfVar14[piVar30[0x14]] <= fVar40)" (binary_expression "iVar32 != 0" identifier != number_literal) && (parenthesized_expression "(pfVar14[piVar30[0x14]] <= fVar40)" ( (binary_expression "pfVar14[piVar30[0x14]] <= fVar40" (subscript_expression "pfVar14[piVar30[0x14]]" identifier [ (subscript_expression "piVar30[0x14]" identifier [ number_literal ]) ]) <= identifier) ))) )) || (parenthesized_expression "((iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46)))" ( (parenthesized_expression "(iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46))" ( (comma_expression "iVar24 = piVar31[0xb4], *(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46)" (assignment_expression "iVar24 = piVar31[0xb4]" identifier = (subscript_expression "piVar31[0xb4]" identifier [ number_literal ])) , (binary_expression "*(int *)(iVar24 + 0x4c) != 0 &&\n                  (*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46)" (binary_expression "*(int *)(iVar24 + 0x4c) != 0" (pointer_expression "*(int *)(iVar24 + 0x4c)" * (cast_expression "(int *)(iVar24 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4c)" ( (binary_expression "iVar24 + 0x4c" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "(*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46)" ( (binary_expression "*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4) <= (float)uVar46" (pointer_expression "*(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4)" * (cast_expression "(float *)(iVar12 + *(int *)(iVar24 + 0x50) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar24 + 0x50) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar24 + 0x50) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x50) * 4" (pointer_expression "*(int *)(iVar24 + 0x50)" * (cast_expression "(int *)(iVar24 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x50)" ( (binary_expression "iVar24 + 0x50" identifier + number_literal) )))) * number_literal)) )))) <= (cast_expression "(float)uVar46" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) ))) )) )) (compound_statement "{\n            uVar28 = uVar28 + 1;\n            pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);\n            iVar12 = iVar12 + piVar31[0xb0] * 4;\n            if (uVar28 == uVar9) goto LAB_0006fc4c;\n          }" { (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) (expression_statement "pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0);" (assignment_expression "pfVar14 = pfVar14 + *(int *)(iVar5 + 0x2c0)" identifier = (binary_expression "pfVar14 + *(int *)(iVar5 + 0x2c0)" identifier + (pointer_expression "*(int *)(iVar5 + 0x2c0)" * (cast_expression "(int *)(iVar5 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c0)" ( (binary_expression "iVar5 + 0x2c0" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = iVar12 + piVar31[0xb0] * 4;" (assignment_expression "iVar12 = iVar12 + piVar31[0xb0] * 4" identifier = (binary_expression "iVar12 + piVar31[0xb0] * 4" identifier + (binary_expression "piVar31[0xb0] * 4" (subscript_expression "piVar31[0xb0]" identifier [ number_literal ]) * number_literal))) ;) (if_statement "if (uVar28 == uVar9) goto LAB_0006fc4c;" if (parenthesized_expression "(uVar28 == uVar9)" ( (binary_expression "uVar28 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_0006fc4c;" goto statement_identifier ;)) })) (expression_statement "dVar37 = dVar44;" (assignment_expression "dVar37 = dVar44" identifier = identifier) ;) (if_statement "if (piVar30[0xd] != 0) {\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }" if (parenthesized_expression "(piVar30[0xd] != 0)" ( (binary_expression "piVar30[0xd] != 0" (subscript_expression "piVar30[0xd]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;\n          }" { (expression_statement "dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41;" (assignment_expression "dVar37 = (double)pfVar14[piVar30[0xe]] * dVar41" identifier = (binary_expression "(double)pfVar14[piVar30[0xe]] * dVar41" (cast_expression "(double)pfVar14[piVar30[0xe]]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pfVar14[piVar30[0xe]]" identifier [ (subscript_expression "piVar30[0xe]" identifier [ number_literal ]) ])) * identifier)) ;) })) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (if_statement "if (*(int *)(iVar24 + 0x34) != 0) {\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x34) != 0" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;\n          }" { (expression_statement "dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41;" (assignment_expression "dVar39 = (double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41" identifier = (binary_expression "(double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4) * dVar41" (cast_expression "(double)*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(iVar12 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) })) (expression_statement "iVar27 = *(int *)(iVar5 + 0x2c0);" (assignment_expression "iVar27 = *(int *)(iVar5 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar5 + 0x2c0)" * (cast_expression "(int *)(iVar5 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c0)" ( (binary_expression "iVar5 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar27) {\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }" if (parenthesized_expression "(0 < iVar27)" ( (binary_expression "0 < iVar27" number_literal < identifier) )) (compound_statement "{\n            pdVar18 = pdVar19;\n            piVar15 = piVar30;\n            pfVar20 = pfVar14;\n            do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);\n          }" { (expression_statement "pdVar18 = pdVar19;" (assignment_expression "pdVar18 = pdVar19" identifier = identifier) ;) (expression_statement "piVar15 = piVar30;" (assignment_expression "piVar15 = piVar30" identifier = identifier) ;) (expression_statement "pfVar20 = pfVar14;" (assignment_expression "pfVar20 = pfVar14" identifier = identifier) ;) (do_statement "do {\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            } while (pdVar18 != pdVar19 + iVar27);" do (compound_statement "{\n              iVar25 = *piVar15;\n              iVar16 = iVar24 + iVar25 * 0xc;\n              if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }\n              pdVar18 = pdVar18 + 1;\n              piVar15 = piVar15 + 3;\n              pfVar20 = pfVar20 + 1;\n            }" { (expression_statement "iVar25 = *piVar15;" (assignment_expression "iVar25 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iVar16 = iVar24 + iVar25 * 0xc;" (assignment_expression "iVar16 = iVar24 + iVar25 * 0xc" identifier = (binary_expression "iVar24 + iVar25 * 0xc" identifier + (binary_expression "iVar25 * 0xc" identifier * number_literal))) ;) (if_statement "if (((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)) {\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }" if (parenthesized_expression "(((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0))" ( (binary_expression "((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))\n                 && ((uVar26 & 2) != 0)" (parenthesized_expression "((piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0))" ( (binary_expression "(piVar30[iVar25 * 3 + 1] != 0) && (uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0)" (parenthesized_expression "(piVar30[iVar25 * 3 + 1] != 0)" ( (binary_expression "piVar30[iVar25 * 3 + 1] != 0" (subscript_expression "piVar30[iVar25 * 3 + 1]" identifier [ (binary_expression "iVar25 * 3 + 1" (binary_expression "iVar25 * 3" identifier * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0)" ( (comma_expression "uVar26 = *(uint *)(iVar16 + 4), uVar26 != 0" (assignment_expression "uVar26 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) , (binary_expression "uVar26 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "((uVar26 & 2) != 0)" ( (binary_expression "(uVar26 & 2) != 0" (parenthesized_expression "(uVar26 & 2)" ( (binary_expression "uVar26 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);\n                if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }\n                dVar36 = dVar36 + dVar48;\n                dVar43 = ABS(dVar42);\n                dVar47 = dVar43 * dVar43 + dVar47;\n                *pdVar18 = *pdVar18 + dVar43;\n                pdVar19[0x40] = pdVar19[0x40] + dVar43;\n                if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }\n              }" { (expression_statement "dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4);" (assignment_expression "dVar42 = (double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar12 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(float *)(iVar12 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (iVar25 == 4) {\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }\n                else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }" if (parenthesized_expression "(iVar25 == 4)" ( (binary_expression "iVar25 == 4" identifier == number_literal) )) (compound_statement "{\n                  dVar42 = (double)*pfVar20 - dVar42;\n                }" { (expression_statement "dVar42 = (double)*pfVar20 - dVar42;" (assignment_expression "dVar42 = (double)*pfVar20 - dVar42" identifier = (binary_expression "(double)*pfVar20 - dVar42" (cast_expression "(double)*pfVar20" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar20" * identifier)) - identifier)) ;) }) (else_clause "else {\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }" else (compound_statement "{\n                  dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;\n                }" { (expression_statement "dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42;" (assignment_expression "dVar42 = dVar37 * (double)*pfVar20 - dVar39 * dVar42" identifier = (binary_expression "dVar37 * (double)*pfVar20 - dVar39 * dVar42" (binary_expression "dVar37 * (double)*pfVar20" identifier * (cast_expression "(double)*pfVar20" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar20" * identifier))) - (binary_expression "dVar39 * dVar42" identifier * identifier))) ;) }))) (expression_statement "dVar36 = dVar36 + dVar48;" (assignment_expression "dVar36 = dVar36 + dVar48" identifier = (binary_expression "dVar36 + dVar48" identifier + identifier)) ;) (expression_statement "dVar43 = ABS(dVar42);" (assignment_expression "dVar43 = ABS(dVar42)" identifier = (call_expression "ABS(dVar42)" identifier (argument_list "(dVar42)" ( identifier )))) ;) (expression_statement "dVar47 = dVar43 * dVar43 + dVar47;" (assignment_expression "dVar47 = dVar43 * dVar43 + dVar47" identifier = (binary_expression "dVar43 * dVar43 + dVar47" (binary_expression "dVar43 * dVar43" identifier * identifier) + identifier)) ;) (expression_statement "*pdVar18 = *pdVar18 + dVar43;" (assignment_expression "*pdVar18 = *pdVar18 + dVar43" (pointer_expression "*pdVar18" * identifier) = (binary_expression "*pdVar18 + dVar43" (pointer_expression "*pdVar18" * identifier) + identifier)) ;) (expression_statement "pdVar19[0x40] = pdVar19[0x40] + dVar43;" (assignment_expression "pdVar19[0x40] = pdVar19[0x40] + dVar43" (subscript_expression "pdVar19[0x40]" identifier [ number_literal ]) = (binary_expression "pdVar19[0x40] + dVar43" (subscript_expression "pdVar19[0x40]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (dVar45 < dVar43) {\n                  dVar45 = ABS(dVar42);\n                }" if (parenthesized_expression "(dVar45 < dVar43)" ( (binary_expression "dVar45 < dVar43" identifier < identifier) )) (compound_statement "{\n                  dVar45 = ABS(dVar42);\n                }" { (expression_statement "dVar45 = ABS(dVar42);" (assignment_expression "dVar45 = ABS(dVar42)" identifier = (call_expression "ABS(dVar42)" identifier (argument_list "(dVar42)" ( identifier )))) ;) })) })) (expression_statement "pdVar18 = pdVar18 + 1;" (assignment_expression "pdVar18 = pdVar18 + 1" identifier = (binary_expression "pdVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar15 = piVar15 + 3;" (assignment_expression "piVar15 = piVar15 + 3" identifier = (binary_expression "piVar15 + 3" identifier + number_literal)) ;) (expression_statement "pfVar20 = pfVar20 + 1;" (assignment_expression "pfVar20 = pfVar20 + 1" identifier = (binary_expression "pfVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar18 != pdVar19 + iVar27)" ( (binary_expression "pdVar18 != pdVar19 + iVar27" identifier != (binary_expression "pdVar19 + iVar27" identifier + identifier)) )) ;) })) (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) (expression_statement "pfVar14 = pfVar14 + iVar27;" (assignment_expression "pfVar14 = pfVar14 + iVar27" identifier = (binary_expression "pfVar14 + iVar27" identifier + identifier)) ;) (expression_statement "iVar12 = iVar12 + piVar31[0xb0] * 4;" (assignment_expression "iVar12 = iVar12 + piVar31[0xb0] * 4" identifier = (binary_expression "iVar12 + piVar31[0xb0] * 4" identifier + (binary_expression "piVar31[0xb0] * 4" (subscript_expression "piVar31[0xb0]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(uVar28 != uVar9)" ( (binary_expression "uVar28 != uVar9" identifier != identifier) )) ;) })) (labeled_statement "LAB_0006fc4c:\n      uVar29 = uVar29 + 1;" statement_identifier : (expression_statement "uVar29 = uVar29 + 1;" (assignment_expression "uVar29 = uVar29 + 1" identifier = (binary_expression "uVar29 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar35 = *(code **)(pcVar34 + 0x339d4c);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + 0x339d4c)" identifier = (pointer_expression "*(code **)(pcVar34 + 0x339d4c)" * (cast_expression "(code **)(pcVar34 + 0x339d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x339d4c)" ( (binary_expression "pcVar34 + 0x339d4c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar29 != uVar3)" ( (binary_expression "uVar29 != uVar3" identifier != identifier) )) ;) (expression_statement "MVar6 = MagickTrue;" (assignment_expression "MVar6 = MagickTrue" identifier = identifier) ;) }))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar34 + 0x3395e4))(uVar10);" statement_identifier : (expression_statement "(**(code **)(pcVar34 + 0x3395e4))(uVar10);" (call_expression "(**(code **)(pcVar34 + 0x3395e4))(uVar10)" (parenthesized_expression "(**(code **)(pcVar34 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar34 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar34 + 0x3395e4)" * (cast_expression "(code **)(pcVar34 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x3395e4)" ( (binary_expression "pcVar34 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar34 + 0x3395e4))(uVar4);" (call_expression "(**(code **)(pcVar34 + 0x3395e4))(uVar4)" (parenthesized_expression "(**(code **)(pcVar34 + 0x3395e4))" ( (pointer_expression "**(code **)(pcVar34 + 0x3395e4)" * (pointer_expression "*(code **)(pcVar34 + 0x3395e4)" * (cast_expression "(code **)(pcVar34 + 0x3395e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x3395e4)" ( (binary_expression "pcVar34 + 0x3395e4" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "dVar38 = *(double *)(iStack_1e0 + 0x1440);" (assignment_expression "dVar38 = *(double *)(iStack_1e0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" * (cast_expression "(double *)(iStack_1e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1e0 + 0x1440)" ( (binary_expression "iStack_1e0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "dVar48 = *(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700);" (assignment_expression "dVar48 = *(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700)" * (cast_expression "(double *)(*(int *)(pcVar34 + 0x338fd0) + 0x3700)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x338fd0) + 0x3700)" ( (binary_expression "*(int *)(pcVar34 + 0x338fd0) + 0x3700" (pointer_expression "*(int *)(pcVar34 + 0x338fd0)" * (cast_expression "(int *)(pcVar34 + 0x338fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x338fd0)" ( (binary_expression "pcVar34 + 0x338fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(double *)(iVar5 + 0x2d8) = pdVar19[0x40] / dVar36;" (assignment_expression "*(double *)(iVar5 + 0x2d8) = pdVar19[0x40] / dVar36" (pointer_expression "*(double *)(iVar5 + 0x2d8)" * (cast_expression "(double *)(iVar5 + 0x2d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2d8)" ( (binary_expression "iVar5 + 0x2d8" identifier + number_literal) )))) = (binary_expression "pdVar19[0x40] / dVar36" (subscript_expression "pdVar19[0x40]" identifier [ number_literal ]) / identifier)) ;) (expression_statement "*(double *)(iVar5 + 0x2e8) = dVar45 * dVar38;" (assignment_expression "*(double *)(iVar5 + 0x2e8) = dVar45 * dVar38" (pointer_expression "*(double *)(iVar5 + 0x2e8)" * (cast_expression "(double *)(iVar5 + 0x2e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2e8)" ( (binary_expression "iVar5 + 0x2e8" identifier + number_literal) )))) = (binary_expression "dVar45 * dVar38" identifier * identifier)) ;) (expression_statement "*(double *)(iVar5 + 0x2e0) = (dVar47 * dVar48) / dVar36;" (assignment_expression "*(double *)(iVar5 + 0x2e0) = (dVar47 * dVar48) / dVar36" (pointer_expression "*(double *)(iVar5 + 0x2e0)" * (cast_expression "(double *)(iVar5 + 0x2e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2e0)" ( (binary_expression "iVar5 + 0x2e0" identifier + number_literal) )))) = (binary_expression "(dVar47 * dVar48) / dVar36" (parenthesized_expression "(dVar47 * dVar48)" ( (binary_expression "dVar47 * dVar48" identifier * identifier) )) / identifier)) ;) (return_statement "return MVar6;" return identifier ;) })))
(translation_unit "int SetImageMonochrome(undefined *param_1,undefined4 param_2)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}\n\n" (function_definition "int SetImageMonochrome(undefined *param_1,undefined4 param_2)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}" primitive_type (function_declarator "SetImageMonochrome(undefined *param_1,undefined4 param_2)" identifier (parameter_list "(undefined *param_1,undefined4 param_2)" ( (parameter_declaration "undefined *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier 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 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 *piVar12;" primitive_type (pointer_declarator "*piVar12" * 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 iVar13;" primitive_type identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * 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 "int iVar20;" primitive_type 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 "undefined *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * 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_1e0;" primitive_type identifier ;) (declaration "double dStack_158;" primitive_type identifier ;) (declaration "int iStack_150;" primitive_type identifier ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "double *pdStack_144;" primitive_type (pointer_declarator "*pdStack_144" * identifier) ;) (declaration "double *pdStack_140;" primitive_type (pointer_declarator "*pdStack_140" * identifier) ;) (declaration "undefined4 uStack_13c;" type_identifier identifier ;) (declaration "undefined4 uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 uStack_130;" type_identifier identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "uint uStack_128;" type_identifier identifier ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "int iStack_11c;" primitive_type identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "int iStack_114;" primitive_type identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "uint uStack_108;" type_identifier identifier ;) (declaration "int *piStack_104;" primitive_type (pointer_declarator "*piStack_104" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "code *pcStack_e0;" type_identifier (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "double *pdStack_d4;" primitive_type (pointer_declarator "*pdStack_d4" * identifier) ;) (declaration "double dStack_d0;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "undefined4 uStack_c0;" type_identifier identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (if_statement "if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }" if (parenthesized_expression "(param_1 != (undefined *)0x0)" ( (binary_expression "param_1 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }" { (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\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 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }" { (if_statement "if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + 0x2a0);\n      }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x2a0);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x2a0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a0)" * (cast_expression "(int *)(param_1 + 0x2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" 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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);" (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 + -0x3ff4,0x5b2)" (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 + -0x3ff4,0x5b2)" ( 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 + -0x3ff4" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x2a0);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x2a0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a0)" * (cast_expression "(int *)(param_1 + 0x2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar2 == 1) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 4) - 3U < 0x1f)" ( (binary_expression "*(int *)(param_1 + 4) - 3U < 0x1f" (binary_expression "*(int *)(param_1 + 4) - 3U" (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        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }" { (if_statement "if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }" if (parenthesized_expression "(-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f))" ( (binary_expression "-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" number_literal < (cast_expression "(int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" ( (binary_expression "(0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f" (parenthesized_expression "(0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f))" ( (binary_expression "0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)" number_literal >> (parenthesized_expression "(*(int *)(param_1 + 4) - 3U & 0x1f)" ( (binary_expression "*(int *)(param_1 + 4) - 3U & 0x1f" (binary_expression "*(int *)(param_1 + 4) - 3U" (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) ))) )) << number_literal) )))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );" (assignment_expression "uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" identifier = (call_expression "(*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" (parenthesized_expression "(*(code *)PTR_GetImageProperty_003a93fc)" ( (pointer_expression "*(code *)PTR_GetImageProperty_003a93fc" * (cast_expression "(code *)PTR_GetImageProperty_003a93fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3)" identifier = (call_expression "(*(code *)PTR_IsStringFalse_003a921c)(uVar3)" (parenthesized_expression "(*(code *)PTR_IsStringFalse_003a921c)" ( (pointer_expression "*(code *)PTR_IsStringFalse_003a921c" * (cast_expression "(code *)PTR_IsStringFalse_003a921c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }" if (parenthesized_expression "((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0))" ( (binary_expression "(iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)" ( (comma_expression "iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2)" identifier = (call_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)" ( (pointer_expression "*(code *)PTR_IdentifyImageMonochrome_003a96bc" * (cast_expression "(code *)PTR_IdentifyImageMonochrome_003a96bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }" { (expression_statement "*(undefined4 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 3" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = FUN_00058a34(param_1,param_2);" (assignment_expression "iVar2 = FUN_00058a34(param_1,param_2)" identifier = (call_expression "FUN_00058a34(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x2a0) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x2a0) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x2a0)" * (cast_expression "(undefined4 *)(param_1 + 0x2a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" 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 + -0x3fe0" identifier + number_literal) ))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) })) (expression_statement "uVar3 = 0x5af;" (assignment_expression "uVar3 = 0x5af" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar15 = 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 "puVar14 = PTR_LAB_003a88e0 + 0xdd0;" (assignment_expression "puVar14 = PTR_LAB_003a88e0 + 0xdd0" identifier = (binary_expression "PTR_LAB_003a88e0 + 0xdd0" 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)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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 "(puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" ( identifier , identifier , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0" identifier + number_literal) ))) ;) (if_statement "if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" if (parenthesized_expression "(puVar14 == (undefined *)0x0)" ( (binary_expression "puVar14 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }" { (expression_statement "(**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);" (call_expression "(**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a644))" ( (pointer_expression "**(code **)(puVar32 + 0x33a644)" * (pointer_expression "*(code **)(puVar32 + 0x33a644)" * (cast_expression "(code **)(puVar32 + 0x33a644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a644)" ( (binary_expression "puVar32 + 0x33a644" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010)" ( (binary_expression "*(int *)(puVar32 + 0x33991c) + 0xdd0" (pointer_expression "*(int *)(puVar32 + 0x33991c)" * (cast_expression "(int *)(puVar32 + 0x33991c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x33991c)" ( (binary_expression "puVar32 + 0x33991c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" { (expression_statement "unaff_s0 = puVar14;" (assignment_expression "unaff_s0 = puVar14" identifier = identifier) ;) (if_statement "if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }" if (parenthesized_expression "(*(int *)(puVar14 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(puVar14 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar14 + 0x336c)" * (cast_expression "(int *)(puVar14 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x336c)" ( (binary_expression "puVar14 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }" { (if_statement "if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" if (parenthesized_expression "(*(int *)(puVar14 + 0x3350) == 0)" ( (binary_expression "*(int *)(puVar14 + 0x3350) == 0" (pointer_expression "*(int *)(puVar14 + 0x3350)" * (cast_expression "(int *)(puVar14 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x3350)" ( (binary_expression "puVar14 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" { (expression_statement "puVar4 = *(undefined **)(puVar14 + 4);" (assignment_expression "puVar4 = *(undefined **)(puVar14 + 4)" identifier = (pointer_expression "*(undefined **)(puVar14 + 4)" * (cast_expression "(undefined **)(puVar14 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" else (compound_statement "{\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" { (expression_statement "(**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);" (call_expression "(**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a21c))" ( (pointer_expression "**(code **)(puVar32 + 0x33a21c)" * (pointer_expression "*(code **)(puVar32 + 0x33a21c)" * (cast_expression "(code **)(puVar32 + 0x33a21c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a21c)" ( (binary_expression "puVar32 + 0x33a21c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8)" ( number_literal , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x402c" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar4 = *(undefined **)(puVar14 + 4);" (assignment_expression "puVar4 = *(undefined **)(puVar14 + 4)" identifier = (pointer_expression "*(undefined **)(puVar14 + 4)" * (cast_expression "(undefined **)(puVar14 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }" if (parenthesized_expression "(puVar4 == puVar15)" ( (binary_expression "puVar4 == puVar15" identifier == identifier) )) (compound_statement "{\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }" { (expression_statement "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);" (assignment_expression "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3)" identifier = (call_expression "(**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3)" (parenthesized_expression "(**(code **)(puVar32 + 0x339d7c))" ( (pointer_expression "**(code **)(puVar32 + 0x339d7c)" * (pointer_expression "*(code **)(puVar32 + 0x339d7c)" * (cast_expression "(code **)(puVar32 + 0x339d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x339d7c)" ( (binary_expression "puVar32 + 0x339d7c" identifier + number_literal) ))))) )) (argument_list "(puVar14,puVar15,uVar3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);" (call_expression "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a864))" ( (pointer_expression "**(code **)(puVar32 + 0x33a864)" * (pointer_expression "*(code **)(puVar32 + 0x33a864)" * (cast_expression "(code **)(puVar32 + 0x33a864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a864)" ( (binary_expression "puVar32 + 0x33a864" identifier + number_literal) ))))) )) (argument_list "(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890)" ( identifier , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5890" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);" (call_expression "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a864))" ( (pointer_expression "**(code **)(puVar32 + 0x33a864)" * (pointer_expression "*(code **)(puVar32 + 0x33a864)" * (cast_expression "(code **)(puVar32 + 0x33a864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a864)" ( (binary_expression "puVar32 + 0x33a864" identifier + number_literal) ))))) )) (argument_list "(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c)" ( identifier , (binary_expression "*(int *)(puVar32 + 0x339924) + -0x588c" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }" if (parenthesized_expression "(puVar15 == (undefined *)0x0)" ( (binary_expression "puVar15 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }" { (expression_statement "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);" (assignment_expression "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3)" identifier = (call_expression "(**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3)" (parenthesized_expression "(**(code **)(puVar32 + 0x339d7c))" ( (pointer_expression "**(code **)(puVar32 + 0x339d7c)" * (pointer_expression "*(code **)(puVar32 + 0x339d7c)" * (cast_expression "(code **)(puVar32 + 0x339d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x339d7c)" ( (binary_expression "puVar32 + 0x339d7c" identifier + number_literal) ))))) )) (argument_list "(puVar14,0,uVar3)" ( identifier , number_literal , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" if (parenthesized_expression "((undefined *)0x1 < puVar15 + -0x17)" ( (binary_expression "(undefined *)0x1 < puVar15 + -0x17" (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar15 + -0x17" identifier + number_literal)) )) (compound_statement "{\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" { (if_statement "if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar14 + 4) - 0x17U < 2)" ( (binary_expression "*(int *)(puVar14 + 4) - 0x17U < 2" (binary_expression "*(int *)(puVar14 + 4) - 0x17U" (pointer_expression "*(int *)(puVar14 + 4)" * (cast_expression "(int *)(puVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 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(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" { (expression_statement "iVar2 = FUN_0006b9c8(puVar14,uVar3);" (assignment_expression "iVar2 = FUN_0006b9c8(puVar14,uVar3)" identifier = (call_expression "FUN_0006b9c8(puVar14,uVar3)" identifier (argument_list "(puVar14,uVar3)" ( 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 "iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);" (assignment_expression "iVar5 = FUN_0006d178(puVar14,puVar15,uVar3)" identifier = (call_expression "FUN_0006d178(puVar14,puVar15,uVar3)" identifier (argument_list "(puVar14,puVar15,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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(puVar14,uVar3);" (assignment_expression "iVar2 = FUN_0006b9c8(puVar14,uVar3)" identifier = (call_expression "FUN_0006b9c8(puVar14,uVar3)" identifier (argument_list "(puVar14,uVar3)" ( identifier , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "uVar3 = 0x5e6;" (assignment_expression "uVar3 = 0x5e6" identifier = number_literal) ;) (expression_statement "pcVar33 = *(code **)(puVar32 + 0x33a644);" (assignment_expression "pcVar33 = *(code **)(puVar32 + 0x33a644)" identifier = (pointer_expression "*(code **)(puVar32 + 0x33a644)" * (cast_expression "(code **)(puVar32 + 0x33a644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x33a644)" ( (binary_expression "puVar32 + 0x33a644" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;" (assignment_expression "iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010" identifier = (binary_expression "*(int *)(puVar32 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;" (assignment_expression "iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970" identifier = (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784" identifier = (binary_expression "*(int *)(puVar32 + 0x339924) + -0x3784" (pointer_expression "*(int *)(puVar32 + 0x339924)" * (cast_expression "(int *)(puVar32 + 0x339924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x339924)" ( (binary_expression "puVar32 + 0x339924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_e0 = pcVar33 + 0x3416c0;" (assignment_expression "pcStack_e0 = pcVar33 + 0x3416c0" identifier = (binary_expression "pcVar33 + 0x3416c0" identifier + number_literal)) ;) (expression_statement "dVar35 = *(double *)(iVar5 + 0x248);" (assignment_expression "dVar35 = *(double *)(iVar5 + 0x248)" identifier = (pointer_expression "*(double *)(iVar5 + 0x248)" * (cast_expression "(double *)(iVar5 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x248)" ( (binary_expression "iVar5 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(iVar2 + 0x248);" (assignment_expression "dVar44 = *(double *)(iVar2 + 0x248)" identifier = (pointer_expression "*(double *)(iVar2 + 0x248)" * (cast_expression "(double *)(iVar2 + 0x248)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x248)" ( (binary_expression "iVar2 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = *(int **)(pcVar33 + 0x33a040);" (assignment_expression "piVar30 = *(int **)(pcVar33 + 0x33a040)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x33a040)" * (cast_expression "(int **)(pcVar33 + 0x33a040)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a040)" ( (binary_expression "pcVar33 + 0x33a040" identifier + number_literal) ))))) ;) (expression_statement "iStack_9c = *piVar30;" (assignment_expression "iStack_9c = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (if_statement "if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" if (parenthesized_expression "(dVar35 < dVar44)" ( (binary_expression "dVar35 < dVar44" identifier < identifier) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }" { (expression_statement "iVar9 = *(int *)(pcVar33 + 0x3396f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x3396f8)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" if (parenthesized_expression "(dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8))" ( (binary_expression "dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" identifier <= (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(pcVar33 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 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    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" { (expression_statement "iVar9 = *(int *)(pcVar33 + 0x3396f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x3396f8)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 0x3396f8" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35)" ( (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" * (cast_expression "(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" ( (binary_expression "*(int *)(pcVar33 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" * (cast_expression "(int *)(pcVar33 + 0x3396f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x3396f8)" ( (binary_expression "pcVar33 + 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 *)(iVar9 + -0x5ad0);\n    }" else (compound_statement "{\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }" { (labeled_statement "LAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);" statement_identifier : (expression_statement "dVar44 = *(double *)(iVar9 + -0x5ad0);" (assignment_expression "dVar44 = *(double *)(iVar9 + -0x5ad0)" identifier = (pointer_expression "*(double *)(iVar9 + -0x5ad0)" * (cast_expression "(double *)(iVar9 + -0x5ad0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x5ad0)" ( (binary_expression "iVar9 + -0x5ad0" identifier + number_literal) ))))) ;)) }))) }))) (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 *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c))" ( (binary_expression "*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)" (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) )))) <= (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }" { (expression_statement "uVar18 = *(uint *)(iVar5 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar6 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar6 = *(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 *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18))" ( (binary_expression "*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)" (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) )))) <= (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }" { (expression_statement "uVar6 = *(uint *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x18)" * (cast_expression "(uint *)(iVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "puStack_98 = unaff_s0;" (assignment_expression "puStack_98 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);" (assignment_expression "uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20)" identifier = (call_expression "(**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20)" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a564))" ( (pointer_expression "**(code **)(pcVar33 + 0x33a564)" * (pointer_expression "*(code **)(pcVar33 + 0x33a564)" * (cast_expression "(code **)(pcVar33 + 0x33a564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x33a564)" ( (binary_expression "pcVar33 + 0x33a564" identifier + number_literal) ))))) )) (argument_list "(iVar2,iVar20)" ( identifier , identifier )))) ;) (expression_statement "uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);" (assignment_expression "uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x715c))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x715c)" * (pointer_expression "*(code **)(pcStack_e0 + -0x715c)" * (cast_expression "(code **)(pcStack_e0 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x715c)" ( (binary_expression "pcStack_e0 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 "(((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))))" ( (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))" ( (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" ( (binary_expression "iVar9 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))" ( (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))" ( (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (binary_expression "iVar9 == 4" identifier == number_literal) || (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" * (cast_expression "(code **)(pcStack_e0 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x73fc)" ( (binary_expression "pcStack_e0 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }" { (expression_statement "pdStack_d4 = pdVar16;" (assignment_expression "pdStack_d4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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_d4;" (assignment_expression "pdVar16 = pdStack_d4" 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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" { (expression_statement "pdStack_d4 = pdVar16;" (assignment_expression "pdStack_d4 = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar16 = pdStack_d4;" (assignment_expression "pdVar16 = pdStack_d4" identifier = identifier) ;) (if_statement "if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" if (parenthesized_expression "(extraout_v1_01 < (int)pdStack_d4)" ( (binary_expression "extraout_v1_01 < (int)pdStack_d4" identifier < (cast_expression "(int)pdStack_d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" { (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);" (assignment_expression "uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7)" identifier = (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" { (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);\n    }" else (compound_statement "{\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }" { (labeled_statement "LAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);" statement_identifier : (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2))" ( (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2)" ( (comma_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" * (cast_expression "(code **)(pcStack_e0 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7774)" ( (binary_expression "pcStack_e0 + -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_d0;" (assignment_expression "pdVar17 = &dStack_d0" identifier = (pointer_expression "&dStack_d0" & identifier)) ;) (expression_statement "iStack_a8 = 1;" (assignment_expression "iStack_a8 = 1" identifier = number_literal) ;) (expression_statement "dStack_d0 = dVar44;" (assignment_expression "dStack_d0 = dVar44" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar2;" (assignment_expression "iStack_c8 = iVar2" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar5;" (assignment_expression "iStack_c4 = iVar5" identifier = identifier) ;) (expression_statement "uStack_c0 = uVar3;" (assignment_expression "uStack_c0 = uVar3" identifier = identifier) ;) (expression_statement "iStack_bc = iVar20;" (assignment_expression "iStack_bc = iVar20" identifier = identifier) ;) (expression_statement "uStack_b8 = uVar7;" (assignment_expression "uStack_b8 = uVar7" identifier = identifier) ;) (expression_statement "uStack_b4 = uVar8;" (assignment_expression "uStack_b4 = uVar8" identifier = identifier) ;) (expression_statement "uStack_b0 = uVar6;" (assignment_expression "uStack_b0 = uVar6" identifier = identifier) ;) (expression_statement "uStack_ac = uVar18;" (assignment_expression "uStack_ac = uVar18" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7718))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7718)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7718)" * (cast_expression "(code **)(pcStack_e0 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7718)" ( (binary_expression "pcStack_e0 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" ( (binary_expression "*(int *)(pcStack_e0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(pcStack_e0 + -0x7f78)" * (cast_expression "(int *)(pcStack_e0 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_e0 + -0x7f78)" ( (binary_expression "pcStack_e0 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = iStack_a8;" (assignment_expression "iVar2 = iStack_a8" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar8);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar8)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" * (cast_expression "(code **)(pcStack_e0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x79bc)" ( (binary_expression "pcStack_e0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar7);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" * (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" * (cast_expression "(code **)(pcStack_e0 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x79bc)" ( (binary_expression "pcStack_e0 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (if_statement "if (iStack_9c == *piVar30) {\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_9c == *piVar30)" ( (binary_expression "iStack_9c == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x784c);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x784c)" identifier = (pointer_expression "*(code **)(pcStack_e0 + -0x784c)" * (cast_expression "(code **)(pcStack_e0 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x784c)" ( (binary_expression "pcStack_e0 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar34 = FUN_0006f518;" (assignment_expression "pcVar34 = FUN_0006f518" identifier = identifier) ;) (expression_statement "iVar9 = iStack_9c;" (assignment_expression "iVar9 = iStack_9c" 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 *)(iVar9 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar9 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c))" ( (binary_expression "*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 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 *)(iVar9 + 0x18);" (assignment_expression "uVar27 = *(uint *)(iVar9 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3))" ( (binary_expression "*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 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_118 = iVar2;" (assignment_expression "iStack_118 = iVar2" identifier = identifier) ;) (expression_statement "iStack_11c = *piVar29;" (assignment_expression "iStack_11c = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "iStack_114 = iVar5;" (assignment_expression "iStack_114 = iVar5" identifier = identifier) ;) (expression_statement "uStack_110 = uVar18;" (assignment_expression "uStack_110 = uVar18" identifier = identifier) ;) (expression_statement "iStack_10c = iVar20;" (assignment_expression "iStack_10c = iVar20" identifier = identifier) ;) (expression_statement "uStack_108 = uVar6;" (assignment_expression "uStack_108 = uVar6" identifier = identifier) ;) (expression_statement "piStack_104 = piVar30;" (assignment_expression "piStack_104 = piVar30" identifier = identifier) ;) (expression_statement "uStack_100 = uVar3;" (assignment_expression "uStack_100 = uVar3" identifier = identifier) ;) (expression_statement "uStack_fc = uVar7;" (assignment_expression "uStack_fc = uVar7" identifier = identifier) ;) (expression_statement "uStack_f8 = uVar8;" (assignment_expression "uStack_f8 = uVar8" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar34;" (assignment_expression "pcStack_f4 = pcVar34" identifier = identifier) ;) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x33a23c))();" (assignment_expression "uVar3 = (**(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 "uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);" (assignment_expression "uVar7 = (**(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))(iVar9);" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" ( (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" ( 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_150;" (assignment_expression "piVar30 = &iStack_150" identifier = (pointer_expression "&iStack_150" & identifier)) ;) (expression_statement "iStack_124 = 1;" (assignment_expression "iStack_124 = 1" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "iStack_150 = 0;" (assignment_expression "iStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "iStack_148 = iVar9;" (assignment_expression "iStack_148 = iVar9" identifier = identifier) ;) (expression_statement "pdStack_144 = pdVar17;" (assignment_expression "pdStack_144 = pdVar17" identifier = identifier) ;) (expression_statement "pdStack_140 = pdVar16;" (assignment_expression "pdStack_140 = pdVar16" identifier = identifier) ;) (expression_statement "uStack_13c = uVar21;" (assignment_expression "uStack_13c = uVar21" identifier = identifier) ;) (expression_statement "uStack_138 = uVar3;" (assignment_expression "uStack_138 = uVar3" identifier = identifier) ;) (expression_statement "uStack_134 = uVar7;" (assignment_expression "uStack_134 = uVar7" identifier = identifier) ;) (expression_statement "uStack_12c = uVar27;" (assignment_expression "uStack_12c = uVar27" identifier = identifier) ;) (expression_statement "uStack_128 = uVar28;" (assignment_expression "uStack_128 = 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 "iVar5 = iStack_124;" (assignment_expression "iVar5 = iStack_124" identifier = identifier) ;) (expression_statement "uVar8 = uStack_14c;" (assignment_expression "uVar8 = uStack_14c" identifier = identifier) ;) (expression_statement "iVar2 = iStack_150;" (assignment_expression "iVar2 = iStack_150" identifier = identifier) ;) (expression_statement "dVar35 = (double)CONCAT44(iStack_150,uStack_14c);" (assignment_expression "dVar35 = (double)CONCAT44(iStack_150,uStack_14c)" identifier = (cast_expression "(double)CONCAT44(iStack_150,uStack_14c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iStack_150,uStack_14c)" identifier (argument_list "(iStack_150,uStack_14c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar7);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar7)" (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 "(uVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar3);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar3)" (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 "(uVar3)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\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_158 = 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_158 = dVar35;" (assignment_expression "dStack_158 = dVar35" identifier = identifier) ;) }) (else_clause "else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }" else (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\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_158 = -(double)CONCAT44(iVar2,uVar8);" (assignment_expression "dStack_158 = -(double)CONCAT44(iVar2,uVar8)" identifier = (unary_expression "-(double)CONCAT44(iVar2,uVar8)" - (cast_expression "(double)CONCAT44(iVar2,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar2,uVar8)" identifier (argument_list "(iVar2,uVar8)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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_158)" ( (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158" (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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);" do (compound_statement "{\n    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  }" { (expression_statement "pdVar10 = pdVar17 + 1;" (assignment_expression "pdVar10 = 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 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar16 + 0x41 != pdVar10)" ( (binary_expression "pdVar16 + 0x41 != pdVar10" (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 *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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 *)(iVar9 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar9 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar9 + 0x2c0)" * (cast_expression "(int *)(iVar9 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2c0)" ( (binary_expression "iVar9 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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 **)(iVar9 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar9 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar9 + 0x2d0)" * (cast_expression "(int **)(iVar9 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x2d0)" ( (binary_expression "iVar9 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;" (assignment_expression "piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3" identifier = (binary_expression "piVar22 + *(int *)(iVar9 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar9 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar9 + 0x2c0)" * (cast_expression "(int *)(iVar9 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2c0)" ( (binary_expression "iVar9 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar12 = piVar22;" (assignment_expression "piVar12 = piVar22" identifier = identifier) ;) (do_statement "do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != piVar30);" do (compound_statement "{\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    }" { (if_statement "if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" if (parenthesized_expression "((piVar22[*piVar12 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar22[*piVar12 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar22[*piVar12 * 3 + 1] & 2U)" ( (binary_expression "piVar22[*piVar12 * 3 + 1] & 2U" (subscript_expression "piVar22[*piVar12 * 3 + 1]" identifier [ (binary_expression "*piVar12 * 3 + 1" (binary_expression "*piVar12 * 3" (pointer_expression "*piVar12" * 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 "piVar12 = piVar12 + 3;" (assignment_expression "piVar12 = piVar12 + 3" identifier = (binary_expression "piVar12 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != piVar30)" ( (binary_expression "piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_11c == iVar2)" ( (binary_expression "iStack_11c == iVar2" identifier == identifier) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" 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_11c;" (assignment_expression "iVar2 = iStack_11c" 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 "uVar6 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar6 = *(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    uVar6 = 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    uVar6 = piVar30[6];\n  }" { (expression_statement "uVar6 = piVar30[6];" (assignment_expression "uVar6 = piVar30[6]" identifier = (subscript_expression "piVar30[6]" identifier [ number_literal ])) ;) })) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x339e44))();" (assignment_expression "uVar3 = (**(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 "uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);" (assignment_expression "uVar7 = (**(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_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 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_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }" { (expression_statement "iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(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 "iVar5 = 1;" (assignment_expression "iVar5 = 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    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }" else (compound_statement "{\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar5 = *(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 "iVar20 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar20 = *(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_1e0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(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 *)(iVar5 + 0x1438);" (assignment_expression "dVar47 = *(double *)(iVar5 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar5 + 0x1438)" * (cast_expression "(double *)(iVar5 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1438)" ( (binary_expression "iVar5 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar20 + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar20 + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3708)" ( (binary_expression "iVar20 + 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      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);" do (compound_statement "{\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    }" { (expression_statement "pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);" (assignment_expression "pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" identifier = (cast_expression "(float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(uVar3,0,uVar28,uVar6,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,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 "(uVar7,0,uVar28,uVar6,1,piVar22)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }" if (parenthesized_expression "((pfVar11 == (float *)0x0) || (iVar9 == 0))" ( (binary_expression "(pfVar11 == (float *)0x0) || (iVar9 == 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 "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0006fc88;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }" if (parenthesized_expression "(0 < (int)uVar6)" ( (binary_expression "0 < (int)uVar6" number_literal < (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\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_1e0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1e0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" * (cast_expression "(double *)(iStack_1e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1e0 + 0x1440)" ( (binary_expression "iStack_1e0 + 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 *)(iVar5 + 0x1438);" (assignment_expression "dVar43 = *(double *)(iVar5 + 0x1438)" identifier = (pointer_expression "*(double *)(iVar5 + 0x1438)" * (cast_expression "(double *)(iVar5 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1438)" ( (binary_expression "iVar5 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(iVar20 + 0x3708);" (assignment_expression "fVar39 = *(float *)(iVar20 + 0x3708)" identifier = (pointer_expression "*(float *)(iVar20 + 0x3708)" * (cast_expression "(float *)(iVar20 + 0x3708)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3708)" ( (binary_expression "iVar20 + 0x3708" identifier + number_literal) ))))) ;) (do_statement "do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);" do (compound_statement "{\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        }" { (while_statement "while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }" while (parenthesized_expression "(((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))))" ( (parenthesized_expression "((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))" ( (binary_expression "(iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (parenthesized_expression "(iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39))" ( (binary_expression "iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)" (binary_expression "iVar31 != 0" identifier != number_literal) && (parenthesized_expression "(pfVar11[piVar29[0x14]] <= fVar39)" ( (binary_expression "pfVar11[piVar29[0x14]] <= fVar39" (subscript_expression "pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }" { (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);" (assignment_expression "pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0)" identifier = (binary_expression "pfVar11 + *(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 == uVar6) goto LAB_0006fc4c;" if (parenthesized_expression "(uVar27 == uVar6)" ( (binary_expression "uVar27 == uVar6" 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)pfVar11[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)pfVar11[piVar29[0xe]] * dVar40;\n          }" { (expression_statement "dVar36 = (double)pfVar11[piVar29[0xe]] * dVar40;" (assignment_expression "dVar36 = (double)pfVar11[piVar29[0xe]] * dVar40" identifier = (binary_expression "(double)pfVar11[piVar29[0xe]] * dVar40" (cast_expression "(double)pfVar11[piVar29[0xe]]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }" { (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (expression_statement "piVar12 = piVar29;" (assignment_expression "piVar12 = piVar29" identifier = identifier) ;) (expression_statement "pfVar19 = pfVar11;" (assignment_expression "pfVar19 = pfVar11" identifier = identifier) ;) (do_statement "do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);" do (compound_statement "{\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            }" { (expression_statement "iVar24 = *piVar12;" (assignment_expression "iVar24 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "iVar13 = iVar23 + iVar24 * 0xc;" (assignment_expression "iVar13 = 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 *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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 *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0))" ( (binary_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)" (parenthesized_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))" ( (binary_expression "(piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 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 *)(iVar13 + 4), uVar25 != 0)" ( (comma_expression "uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar13 + 4)" identifier = (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 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 *)(iVar13 + 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 *)(iVar13 + 8) * 4);" (assignment_expression "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar13 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar13 + 8) * 4" identifier + (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 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 "piVar12 = piVar12 + 3;" (assignment_expression "piVar12 = piVar12 + 3" identifier = (binary_expression "piVar12 + 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 "pfVar11 = pfVar11 + iVar26;" (assignment_expression "pfVar11 = pfVar11 + iVar26" identifier = (binary_expression "pfVar11 + 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 != uVar6)" ( (binary_expression "uVar27 != uVar6" 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 "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar7);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar7)" (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 "(uVar7)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar3);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar3)" (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 "(uVar3)" ( identifier ))) ;) (expression_statement "dVar37 = *(double *)(iStack_1e0 + 0x1440);" (assignment_expression "dVar37 = *(double *)(iStack_1e0 + 0x1440)" identifier = (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" * (cast_expression "(double *)(iStack_1e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1e0 + 0x1440)" ( (binary_expression "iStack_1e0 + 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 iVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 { (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 == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) & LIT) ))) )) << LIT) )))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) })) })) (return_statement return LIT ;) })) (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) ))) ;) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 ( IDENT , IDENT , IDENT )))) ;) (return_statement return 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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 ( IDENT , LIT , IDENT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 SetImageMonochrome(undefined *param_1,undefined4 param_2)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}" (primitive_type "int") (function_declarator "SetImageMonochrome(undefined *param_1,undefined4 param_2)" (identifier "SetImageMonochrome") (parameter_list "(undefined *param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined *param_1" (type_identifier "undefined") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  double *pdVar10;\n  float *pfVar11;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int *piVar12;\n  int extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int iVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  float *pfVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  int iVar23;\n  int iVar24;\n  uint uVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *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_1e0;\n  double dStack_158;\n  int iStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  double *pdStack_144;\n  double *pdStack_140;\n  undefined4 uStack_13c;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined4 uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  int iStack_124;\n  int iStack_11c;\n  int iStack_118;\n  int iStack_114;\n  uint uStack_110;\n  int iStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  code *pcStack_f4;\n  code *pcStack_e0;\n  double *pdStack_d4;\n  double dStack_d0;\n  int iStack_c8;\n  int iStack_c4;\n  undefined4 uStack_c0;\n  int iStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  int iStack_9c;\n  undefined *puStack_98;\n  \n  if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }\n  uVar3 = 0x5af;\n  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;\n  puVar14 = PTR_LAB_003a88e0 + 0xdd0;\n  puVar32 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n  if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }\n  uVar3 = 0x5e6;\n  pcVar33 = *(code **)(puVar32 + 0x33a644);\n  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;\n  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;\n  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;\n  (*pcVar33)();\n  pcStack_e0 = pcVar33 + 0x3416c0;\n  dVar35 = *(double *)(iVar5 + 0x248);\n  dVar44 = *(double *)(iVar2 + 0x248);\n  piVar30 = *(int **)(pcVar33 + 0x33a040);\n  iStack_9c = *piVar30;\n  if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }\n  puStack_98 = unaff_s0;\n  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);\n  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);\n  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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_d0;\n  iStack_a8 = 1;\n  dStack_d0 = dVar44;\n  iStack_c8 = iVar2;\n  iStack_c4 = iVar5;\n  uStack_c0 = uVar3;\n  iStack_bc = iVar20;\n  uStack_b8 = uVar7;\n  uStack_b4 = uVar8;\n  uStack_b0 = uVar6;\n  uStack_ac = uVar18;\n  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);\n  iVar2 = iStack_a8;\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);\n  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);\n  if (iStack_9c == *piVar30) {\n    return iVar2;\n  }\n  pcVar33 = *(code **)(pcStack_e0 + -0x784c);\n  pcVar34 = FUN_0006f518;\n  iVar9 = iStack_9c;\n  (*pcVar33)();\n  piVar29 = *(int **)(pcVar33 + 0x339d18);\n  uVar28 = *(uint *)(iVar9 + 0x1c);\n  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }\n  uVar27 = *(uint *)(iVar9 + 0x18);\n  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }\n  iStack_118 = iVar2;\n  iStack_11c = *piVar29;\n  iStack_114 = iVar5;\n  uStack_110 = uVar18;\n  iStack_10c = iVar20;\n  uStack_108 = uVar6;\n  piStack_104 = piVar30;\n  uStack_100 = uVar3;\n  uStack_fc = uVar7;\n  uStack_f8 = uVar8;\n  pcStack_f4 = pcVar34;\n  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();\n  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);\n  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);\n  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;\n  iStack_124 = 1;\n  uStack_14c = 0;\n  iStack_150 = 0;\n  uStack_130 = 0;\n  iStack_148 = iVar9;\n  pdStack_144 = pdVar17;\n  pdStack_140 = pdVar16;\n  uStack_13c = uVar21;\n  uStack_138 = uVar3;\n  uStack_134 = uVar7;\n  uStack_12c = uVar27;\n  uStack_128 = uVar28;\n  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);\n  iVar5 = iStack_124;\n  uVar8 = uStack_14c;\n  iVar2 = iStack_150;\n  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar7);\n  (**(code **)(pcVar33 + 0x3399dc))(uVar3);\n  if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }\n  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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_11c == iVar2) {\n    return iVar5;\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x339b4c);\n  iVar2 = iStack_11c;\n  (*pcVar33)();\n  uVar18 = *(uint *)(iVar2 + 0x1c);\n  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {\n    uVar18 = piVar30[7];\n  }\n  uVar6 = *(uint *)(iVar2 + 0x18);\n  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {\n    uVar6 = piVar30[6];\n  }\n  uVar3 = (**(code **)(pcVar33 + 0x339e44))();\n  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);\n  if ((int)uVar18 < 1) {\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }\nLAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);\n  (**(code **)(pcVar33 + 0x3395e4))(uVar3);\n  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "double *pdVar10;" (primitive_type "double") (pointer_declarator "*pdVar10" (* "*") (identifier "pdVar10")) (; ";")) (declaration "float *pfVar11;" (primitive_type "float") (pointer_declarator "*pfVar11" (* "*") (identifier "pfVar11")) (; ";")) (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 *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (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 iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (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 "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (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 "undefined *unaff_s0;" (type_identifier "undefined") (pointer_declarator "*unaff_s0" (* "*") (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_1e0;" (primitive_type "int") (identifier "iStack_1e0") (; ";")) (declaration "double dStack_158;" (primitive_type "double") (identifier "dStack_158") (; ";")) (declaration "int iStack_150;" (primitive_type "int") (identifier "iStack_150") (; ";")) (declaration "undefined4 uStack_14c;" (type_identifier "undefined4") (identifier "uStack_14c") (; ";")) (declaration "int iStack_148;" (primitive_type "int") (identifier "iStack_148") (; ";")) (declaration "double *pdStack_144;" (primitive_type "double") (pointer_declarator "*pdStack_144" (* "*") (identifier "pdStack_144")) (; ";")) (declaration "double *pdStack_140;" (primitive_type "double") (pointer_declarator "*pdStack_140" (* "*") (identifier "pdStack_140")) (; ";")) (declaration "undefined4 uStack_13c;" (type_identifier "undefined4") (identifier "uStack_13c") (; ";")) (declaration "undefined4 uStack_138;" (type_identifier "undefined4") (identifier "uStack_138") (; ";")) (declaration "undefined4 uStack_134;" (type_identifier "undefined4") (identifier "uStack_134") (; ";")) (declaration "undefined4 uStack_130;" (type_identifier "undefined4") (identifier "uStack_130") (; ";")) (declaration "uint uStack_12c;" (type_identifier "uint") (identifier "uStack_12c") (; ";")) (declaration "uint uStack_128;" (type_identifier "uint") (identifier "uStack_128") (; ";")) (declaration "int iStack_124;" (primitive_type "int") (identifier "iStack_124") (; ";")) (declaration "int iStack_11c;" (primitive_type "int") (identifier "iStack_11c") (; ";")) (declaration "int iStack_118;" (primitive_type "int") (identifier "iStack_118") (; ";")) (declaration "int iStack_114;" (primitive_type "int") (identifier "iStack_114") (; ";")) (declaration "uint uStack_110;" (type_identifier "uint") (identifier "uStack_110") (; ";")) (declaration "int iStack_10c;" (primitive_type "int") (identifier "iStack_10c") (; ";")) (declaration "uint uStack_108;" (type_identifier "uint") (identifier "uStack_108") (; ";")) (declaration "int *piStack_104;" (primitive_type "int") (pointer_declarator "*piStack_104" (* "*") (identifier "piStack_104")) (; ";")) (declaration "undefined4 uStack_100;" (type_identifier "undefined4") (identifier "uStack_100") (; ";")) (declaration "undefined4 uStack_fc;" (type_identifier "undefined4") (identifier "uStack_fc") (; ";")) (declaration "undefined4 uStack_f8;" (type_identifier "undefined4") (identifier "uStack_f8") (; ";")) (declaration "code *pcStack_f4;" (type_identifier "code") (pointer_declarator "*pcStack_f4" (* "*") (identifier "pcStack_f4")) (; ";")) (declaration "code *pcStack_e0;" (type_identifier "code") (pointer_declarator "*pcStack_e0" (* "*") (identifier "pcStack_e0")) (; ";")) (declaration "double *pdStack_d4;" (primitive_type "double") (pointer_declarator "*pdStack_d4" (* "*") (identifier "pdStack_d4")) (; ";")) (declaration "double dStack_d0;" (primitive_type "double") (identifier "dStack_d0") (; ";")) (declaration "int iStack_c8;" (primitive_type "int") (identifier "iStack_c8") (; ";")) (declaration "int iStack_c4;" (primitive_type "int") (identifier "iStack_c4") (; ";")) (declaration "undefined4 uStack_c0;" (type_identifier "undefined4") (identifier "uStack_c0") (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "undefined4 uStack_b8;" (type_identifier "undefined4") (identifier "uStack_b8") (; ";")) (declaration "undefined4 uStack_b4;" (type_identifier "undefined4") (identifier "uStack_b4") (; ";")) (declaration "uint uStack_b0;" (type_identifier "uint") (identifier "uStack_b0") (; ";")) (declaration "uint uStack_ac;" (type_identifier "uint") (identifier "uStack_ac") (; ";")) (declaration "int iStack_a8;" (primitive_type "int") (identifier "iStack_a8") (; ";")) (declaration "int iStack_9c;" (primitive_type "int") (identifier "iStack_9c") (; ";")) (declaration "undefined *puStack_98;" (type_identifier "undefined") (pointer_declarator "*puStack_98" (* "*") (identifier "puStack_98")) (; ";")) (if_statement "if (param_1 != (undefined *)0x0) {\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }" (if "if") (parenthesized_expression "(param_1 != (undefined *)0x0)" (( "(") (binary_expression "param_1 != (undefined *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);\n    unaff_s0 = param_1;\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n      if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\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 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\n      }\n      if (iVar2 == 1) {\n        return 1;\n      }\n      if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }\n      return 0;\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x3350) == 0) {\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + 0x2a0);\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 0x2a0);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x2a0)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x2a0)" (* "*") (cast_expression "(int *)(param_1 + 0x2a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a0)" (( "(") (binary_expression "param_1 + 0x2a0" (identifier "param_1") (+ "+") (number_literal "0x2a0")) () ")"))))) (; ";")) (} "}")) (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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);\n        iVar2 = *(int *)(param_1 + 0x2a0);\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 + -0x3ff4,0x5b2);" (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 + -0x3ff4,0x5b2)" (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 + -0x3ff4,0x5b2)" (( "(") (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 + -0x3ff4" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3ff4")) (, ",") (number_literal "0x5b2") () ")"))) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 0x2a0);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x2a0)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x2a0)" (* "*") (cast_expression "(int *)(param_1 + 0x2a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a0)" (( "(") (binary_expression "param_1 + 0x2a0" (identifier "param_1") (+ "+") (number_literal "0x2a0")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar2 == 1) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 4) - 3U < 0x1f) {\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 4) - 3U < 0x1f)" (( "(") (binary_expression "*(int *)(param_1 + 4) - 3U < 0x1f" (binary_expression "*(int *)(param_1 + 4) - 3U" (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 "3U")) (< "<") (number_literal "0x1f")) () ")")) (compound_statement "{\n        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }\n        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );\n        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);\n        if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }\n      }" ({ "{") (if_statement "if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f))" (( "(") (binary_expression "-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" (number_literal "-1") (< "<") (cast_expression "(int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f" (parenthesized_expression "(0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f))" (( "(") (binary_expression "0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)" (number_literal "0x403c0001U") (>> ">>") (parenthesized_expression "(*(int *)(param_1 + 4) - 3U & 0x1f)" (( "(") (binary_expression "*(int *)(param_1 + 4) - 3U & 0x1f" (binary_expression "*(int *)(param_1 + 4) - 3U" (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 "3U")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")")))) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          );" (assignment_expression "uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_GetImageProperty_003a93fc)\n                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" (parenthesized_expression "(*(code *)PTR_GetImageProperty_003a93fc)" (( "(") (pointer_expression "*(code *)PTR_GetImageProperty_003a93fc" (* "*") (cast_expression "(code *)PTR_GetImageProperty_003a93fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImageProperty_003a93fc"))) () ")")) (argument_list "(param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2\n                          )" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x58ac")) (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_IsStringFalse_003a921c)(uVar3)" (parenthesized_expression "(*(code *)PTR_IsStringFalse_003a921c)" (( "(") (pointer_expression "*(code *)PTR_IsStringFalse_003a921c" (* "*") (cast_expression "(code *)PTR_IsStringFalse_003a921c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_IsStringFalse_003a921c"))) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if ((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0))" (( "(") (binary_expression "(iVar2 == 0) &&\n           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_IdentifyImageMonochrome_003a96bc)" (( "(") (pointer_expression "*(code *)PTR_IdentifyImageMonochrome_003a96bc" (* "*") (cast_expression "(code *)PTR_IdentifyImageMonochrome_003a96bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_IdentifyImageMonochrome_003a96bc"))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined4 *)(param_1 + 4) = 3;\n          iVar2 = FUN_00058a34(param_1,param_2);\n          if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }\n        }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 3" (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar2 = FUN_00058a34(param_1,param_2);" (assignment_expression "iVar2 = FUN_00058a34(param_1,param_2)" (identifier "iVar2") (= "=") (call_expression "FUN_00058a34(param_1,param_2)" (identifier "FUN_00058a34") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x2a0) = 1;\n            return 1;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x2a0) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x2a0) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x2a0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x2a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a0)" (( "(") (binary_expression "param_1 + 0x2a0" (identifier "param_1") (+ "+") (number_literal "0x2a0")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,\n               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3784")) (, ",") (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 "0x5b0") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3fe0")) () ")"))) (; ";")) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "uVar3 = 0x5af;" (assignment_expression "uVar3 = 0x5af" (identifier "uVar3") (= "=") (number_literal "0x5af")) (; ";")) (expression_statement "puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;" (assignment_expression "puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970" (identifier "puVar15") (= "=") (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 "puVar14 = PTR_LAB_003a88e0 + 0xdd0;" (assignment_expression "puVar14 = PTR_LAB_003a88e0 + 0xdd0" (identifier "puVar14") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0xdd0" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0xdd0"))) (; ";")) (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)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (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 "(puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0)" (( "(") (identifier "puVar14") (, ",") (identifier "puVar15") (, ",") (number_literal "0x5af") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3fe0")) () ")"))) (; ";")) (if_statement "if (puVar14 == (undefined *)0x0) {\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }\n  else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" (if "if") (parenthesized_expression "(puVar14 == (undefined *)0x0)" (( "(") (binary_expression "puVar14 == (undefined *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);\n  }" ({ "{") (expression_statement "(**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010);" (call_expression "(**(code **)(puVar32 + 0x33a644))\n              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a644))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x33a644)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x33a644)" (* "*") (cast_expression "(code **)(puVar32 + 0x33a644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a644)" (( "(") (binary_expression "puVar32 + 0x33a644" (identifier "puVar32") (+ "+") (number_literal "0x33a644")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,\n               *(int *)(puVar32 + 0x339924) + -0x4010)" (( "(") (binary_expression "*(int *)(puVar32 + 0x33991c) + 0xdd0" (pointer_expression "*(int *)(puVar32 + 0x33991c)" (* "*") (cast_expression "(int *)(puVar32 + 0x33991c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x33991c)" (( "(") (binary_expression "puVar32 + 0x33991c" (identifier "puVar32") (+ "+") (number_literal "0x33991c")) () ")")))) (+ "+") (number_literal "0xdd0")) (, ",") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x5970")) (, ",") (number_literal "0x5e5") (, ",") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x4010")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s0 = puVar14;\n    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }\n  }" ({ "{") (expression_statement "unaff_s0 = puVar14;" (assignment_expression "unaff_s0 = puVar14" (identifier "unaff_s0") (= "=") (identifier "puVar14")) (; ";")) (if_statement "if (*(int *)(puVar14 + 0x336c) == -0x54535255) {\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar14 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(puVar14 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar14 + 0x336c)" (* "*") (cast_expression "(int *)(puVar14 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x336c)" (( "(") (binary_expression "puVar14 + 0x336c" (identifier "puVar14") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n      if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);\n      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);\n      if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }\n      if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }\n      iVar2 = FUN_0006b9c8(puVar14,uVar3);\n      return iVar2;\n    }" ({ "{") (if_statement "if (*(int *)(puVar14 + 0x3350) == 0) {\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }\n      else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar14 + 0x3350) == 0)" (( "(") (binary_expression "*(int *)(puVar14 + 0x3350) == 0" (pointer_expression "*(int *)(puVar14 + 0x3350)" (* "*") (cast_expression "(int *)(puVar14 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x3350)" (( "(") (binary_expression "puVar14 + 0x3350" (identifier "puVar14") (+ "+") (number_literal "0x3350")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" ({ "{") (expression_statement "puVar4 = *(undefined **)(puVar14 + 4);" (assignment_expression "puVar4 = *(undefined **)(puVar14 + 4)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined **)(puVar14 + 4)" (* "*") (cast_expression "(undefined **)(puVar14 + 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" (else "else") (compound_statement "{\n        (**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);\n        puVar4 = *(undefined **)(puVar14 + 4);\n      }" ({ "{") (expression_statement "(**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);" (call_expression "(**(code **)(puVar32 + 0x33a21c))\n                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a21c))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x33a21c)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x33a21c)" (* "*") (cast_expression "(code **)(puVar32 + 0x33a21c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a21c)" (( "(") (binary_expression "puVar32 + 0x33a21c" (identifier "puVar32") (+ "+") (number_literal "0x33a21c")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,\n                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x5970")) (, ",") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x402c" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x402c")) (, ",") (number_literal "0x5e8") () ")"))) (; ";")) (expression_statement "puVar4 = *(undefined **)(puVar14 + 4);" (assignment_expression "puVar4 = *(undefined **)(puVar14 + 4)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined **)(puVar14 + 4)" (* "*") (cast_expression "(undefined **)(puVar14 + 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (puVar4 == puVar15) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(puVar4 == puVar15)" (( "(") (binary_expression "puVar4 == puVar15" (identifier "puVar4") (== "==") (identifier "puVar15")) () ")")) (compound_statement "{\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);\n        return iVar2;\n      }" ({ "{") (expression_statement "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);" (assignment_expression "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3)" (parenthesized_expression "(**(code **)(puVar32 + 0x339d7c))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x339d7c)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x339d7c)" (* "*") (cast_expression "(code **)(puVar32 + 0x339d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x339d7c)" (( "(") (binary_expression "puVar32 + 0x339d7c" (identifier "puVar32") (+ "+") (number_literal "0x339d7c")) () ")"))))) () ")")) (argument_list "(puVar14,puVar15,uVar3)" (( "(") (identifier "puVar14") (, ",") (identifier "puVar15") (, ",") (identifier "uVar3") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);" (call_expression "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a864))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x33a864)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x33a864)" (* "*") (cast_expression "(code **)(puVar32 + 0x33a864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a864)" (( "(") (binary_expression "puVar32 + 0x33a864" (identifier "puVar32") (+ "+") (number_literal "0x33a864")) () ")"))))) () ")")) (argument_list "(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890)" (( "(") (identifier "puVar14") (, ",") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5890" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x5890")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);" (call_expression "(**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c)" (parenthesized_expression "(**(code **)(puVar32 + 0x33a864))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x33a864)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x33a864)" (* "*") (cast_expression "(code **)(puVar32 + 0x33a864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a864)" (( "(") (binary_expression "puVar32 + 0x33a864" (identifier "puVar32") (+ "+") (number_literal "0x33a864")) () ")"))))) () ")")) (argument_list "(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c)" (( "(") (identifier "puVar14") (, ",") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x588c" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x588c")) () ")"))) (; ";")) (if_statement "if (puVar15 == (undefined *)0x0) {\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }" (if "if") (parenthesized_expression "(puVar15 == (undefined *)0x0)" (( "(") (binary_expression "puVar15 == (undefined *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                    \n        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);\n        return iVar2;\n      }" ({ "{") (expression_statement "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);" (assignment_expression "iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3)" (parenthesized_expression "(**(code **)(puVar32 + 0x339d7c))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x339d7c)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x339d7c)" (* "*") (cast_expression "(code **)(puVar32 + 0x339d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x339d7c)" (( "(") (binary_expression "puVar32 + 0x339d7c" (identifier "puVar32") (+ "+") (number_literal "0x339d7c")) () ")"))))) () ")")) (argument_list "(puVar14,0,uVar3)" (( "(") (identifier "puVar14") (, ",") (number_literal "0") (, ",") (identifier "uVar3") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (if_statement "if ((undefined *)0x1 < puVar15 + -0x17) {\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" (if "if") (parenthesized_expression "((undefined *)0x1 < puVar15 + -0x17)" (( "(") (binary_expression "(undefined *)0x1 < puVar15 + -0x17" (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (< "<") (binary_expression "puVar15 + -0x17" (identifier "puVar15") (+ "+") (number_literal "-0x17"))) () ")")) (compound_statement "{\n        if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }\n        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        return iVar2;\n      }" ({ "{") (if_statement "if (*(int *)(puVar14 + 4) - 0x17U < 2) {\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar14 + 4) - 0x17U < 2)" (( "(") (binary_expression "*(int *)(puVar14 + 4) - 0x17U < 2" (binary_expression "*(int *)(puVar14 + 4) - 0x17U" (pointer_expression "*(int *)(puVar14 + 4)" (* "*") (cast_expression "(int *)(puVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (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(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar2 = FUN_0006b9c8(puVar14,uVar3);\n          if (iVar2 == 0) {\n            return 0;\n          }\n        }" ({ "{") (expression_statement "iVar2 = FUN_0006b9c8(puVar14,uVar3);" (assignment_expression "iVar2 = FUN_0006b9c8(puVar14,uVar3)" (identifier "iVar2") (= "=") (call_expression "FUN_0006b9c8(puVar14,uVar3)" (identifier "FUN_0006b9c8") (argument_list "(puVar14,uVar3)" (( "(") (identifier "puVar14") (, ",") (identifier "uVar3") () ")")))) (; ";")) (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 "iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);" (assignment_expression "iVar5 = FUN_0006d178(puVar14,puVar15,uVar3)" (identifier "iVar5") (= "=") (call_expression "FUN_0006d178(puVar14,puVar15,uVar3)" (identifier "FUN_0006d178") (argument_list "(puVar14,puVar15,uVar3)" (( "(") (identifier "puVar14") (, ",") (identifier "puVar15") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (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(puVar14,uVar3);" (assignment_expression "iVar2 = FUN_0006b9c8(puVar14,uVar3)" (identifier "iVar2") (= "=") (call_expression "FUN_0006b9c8(puVar14,uVar3)" (identifier "FUN_0006b9c8") (argument_list "(puVar14,uVar3)" (( "(") (identifier "puVar14") (, ",") (identifier "uVar3") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar3 = 0x5e6;" (assignment_expression "uVar3 = 0x5e6" (identifier "uVar3") (= "=") (number_literal "0x5e6")) (; ";")) (expression_statement "pcVar33 = *(code **)(puVar32 + 0x33a644);" (assignment_expression "pcVar33 = *(code **)(puVar32 + 0x33a644)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(puVar32 + 0x33a644)" (* "*") (cast_expression "(code **)(puVar32 + 0x33a644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x33a644)" (( "(") (binary_expression "puVar32 + 0x33a644" (identifier "puVar32") (+ "+") (number_literal "0x33a644")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;" (assignment_expression "iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010" (identifier "iVar20") (= "=") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x4010" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x4010"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;" (assignment_expression "iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x5970" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x5970"))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;" (assignment_expression "iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar32 + 0x339924) + -0x3784" (pointer_expression "*(int *)(puVar32 + 0x339924)" (* "*") (cast_expression "(int *)(puVar32 + 0x339924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x339924)" (( "(") (binary_expression "puVar32 + 0x339924" (identifier "puVar32") (+ "+") (number_literal "0x339924")) () ")")))) (+ "+") (number_literal "-0x3784"))) (; ";")) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_e0 = pcVar33 + 0x3416c0;" (assignment_expression "pcStack_e0 = pcVar33 + 0x3416c0" (identifier "pcStack_e0") (= "=") (binary_expression "pcVar33 + 0x3416c0" (identifier "pcVar33") (+ "+") (number_literal "0x3416c0"))) (; ";")) (expression_statement "dVar35 = *(double *)(iVar5 + 0x248);" (assignment_expression "dVar35 = *(double *)(iVar5 + 0x248)" (identifier "dVar35") (= "=") (pointer_expression "*(double *)(iVar5 + 0x248)" (* "*") (cast_expression "(double *)(iVar5 + 0x248)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x248)" (( "(") (binary_expression "iVar5 + 0x248" (identifier "iVar5") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "dVar44 = *(double *)(iVar2 + 0x248);" (assignment_expression "dVar44 = *(double *)(iVar2 + 0x248)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(iVar2 + 0x248)" (* "*") (cast_expression "(double *)(iVar2 + 0x248)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x248)" (( "(") (binary_expression "iVar2 + 0x248" (identifier "iVar2") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "piVar30 = *(int **)(pcVar33 + 0x33a040);" (assignment_expression "piVar30 = *(int **)(pcVar33 + 0x33a040)" (identifier "piVar30") (= "=") (pointer_expression "*(int **)(pcVar33 + 0x33a040)" (* "*") (cast_expression "(int **)(pcVar33 + 0x33a040)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x33a040)" (( "(") (binary_expression "pcVar33 + 0x33a040" (identifier "pcVar33") (+ "+") (number_literal "0x33a040")) () ")"))))) (; ";")) (expression_statement "iStack_9c = *piVar30;" (assignment_expression "iStack_9c = *piVar30" (identifier "iStack_9c") (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (if_statement "if (dVar35 < dVar44) {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }\n  else {\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" (if "if") (parenthesized_expression "(dVar35 < dVar44)" (( "(") (binary_expression "dVar35 < dVar44" (identifier "dVar35") (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;\nLAB_0006f470:\n    dVar44 = dVar44 * dVar44;\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(pcVar33 + 0x3396f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x3396f8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3396f8)" (( "(") (binary_expression "pcVar33 + 0x3396f8" (identifier "pcVar33") (+ "+") (number_literal "0x3396f8")) () ")"))))) (; ";")) (if_statement "if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;" (if "if") (parenthesized_expression "(dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8))" (( "(") (binary_expression "dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (identifier "dVar44") (<= "<=") (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3396f8)" (( "(") (binary_expression "pcVar33 + 0x3396f8" (identifier "pcVar33") (+ "+") (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    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" (else "else") (compound_statement "{\n    iVar9 = *(int *)(pcVar33 + 0x3396f8);\n    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(pcVar33 + 0x3396f8);" (assignment_expression "iVar9 = *(int *)(pcVar33 + 0x3396f8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3396f8)" (( "(") (binary_expression "pcVar33 + 0x3396f8" (identifier "pcVar33") (+ "+") (number_literal "0x3396f8")) () ")"))))) (; ";")) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {\n      if (dVar35 < dVar44) goto LAB_0006f470;\n      dVar44 = dVar35 * dVar35;\n    }\n    else {\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35" (pointer_expression "*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)" (( "(") (binary_expression "*(int *)(pcVar33 + 0x3396f8) + -0x5ac8" (pointer_expression "*(int *)(pcVar33 + 0x3396f8)" (* "*") (cast_expression "(int *)(pcVar33 + 0x3396f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar33 + 0x3396f8)" (( "(") (binary_expression "pcVar33 + 0x3396f8" (identifier "pcVar33") (+ "+") (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 *)(iVar9 + -0x5ad0);\n    }" (else "else") (compound_statement "{\nLAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);\n    }" ({ "{") (labeled_statement "LAB_0006f270:\n      dVar44 = *(double *)(iVar9 + -0x5ad0);" (statement_identifier "LAB_0006f270") (: ":") (expression_statement "dVar44 = *(double *)(iVar9 + -0x5ad0);" (assignment_expression "dVar44 = *(double *)(iVar9 + -0x5ad0)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(iVar9 + -0x5ad0)" (* "*") (cast_expression "(double *)(iVar9 + -0x5ad0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x5ad0)" (( "(") (binary_expression "iVar9 + -0x5ad0" (identifier "iVar9") (+ "+") (number_literal "-0x5ad0")) () ")"))))) (; ";"))) (} "}")))) (} "}")))) (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 *)(iVar5 + 0x1c)) {\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c))" (( "(") (binary_expression "*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)" (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")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar5 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n    uVar18 = *(uint *)(iVar5 + 0x1c);\n  }" ({ "{") (expression_statement "uVar18 = *(uint *)(iVar5 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar5 + 0x1c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar6 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar2 + 0x18)" (identifier "uVar6") (= "=") (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 *)(iVar5 + 0x18)) {\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18))" (( "(") (binary_expression "*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)" (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")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar5 + 0x18)" (* "*") (cast_expression "(uint *)(iVar5 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n    uVar6 = *(uint *)(iVar5 + 0x18);\n  }" ({ "{") (expression_statement "uVar6 = *(uint *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x18)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x18)" (* "*") (cast_expression "(uint *)(iVar5 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puStack_98 = unaff_s0;" (assignment_expression "puStack_98 = unaff_s0" (identifier "puStack_98") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);" (assignment_expression "uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20)" (parenthesized_expression "(**(code **)(pcVar33 + 0x33a564))" (( "(") (pointer_expression "**(code **)(pcVar33 + 0x33a564)" (* "*") (pointer_expression "*(code **)(pcVar33 + 0x33a564)" (* "*") (cast_expression "(code **)(pcVar33 + 0x33a564)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar33 + 0x33a564)" (( "(") (binary_expression "pcVar33 + 0x33a564" (identifier "pcVar33") (+ "+") (number_literal "0x33a564")) () ")"))))) () ")")) (argument_list "(iVar2,iVar20)" (( "(") (identifier "iVar2") (, ",") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);" (assignment_expression "uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x715c))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x715c)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x715c)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x715c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x715c)" (( "(") (binary_expression "pcStack_e0 + -0x715c" (identifier "pcStack_e0") (+ "+") (number_literal "-0x715c")) () ")"))))) () ")")) (argument_list "(iVar5,iVar20)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x73fc)" (( "(") (binary_expression "pcStack_e0 + -0x73fc" (identifier "pcStack_e0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 "(((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))))" (( "(") (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))" (( "(") (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" (( "(") (binary_expression "iVar9 == 4" (identifier "iVar9") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (( "(") (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x73fc)" (( "(") (binary_expression "pcStack_e0 + -0x73fc" (identifier "pcStack_e0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar9 == 3" (identifier "iVar9") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))" (( "(") (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3))" (( "(") (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x73fc)" (( "(") (binary_expression "pcStack_e0 + -0x73fc" (identifier "pcStack_e0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (binary_expression "iVar9 == 4" (identifier "iVar9") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)" (( "(") (comma_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcStack_e0 + -0x73fc))(iVar2)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x73fc))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x73fc)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x73fc)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x73fc)" (( "(") (binary_expression "pcStack_e0 + -0x73fc" (identifier "pcStack_e0") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar9 == 3" (identifier "iVar9") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      pdVar16 = pdStack_d4;\n    }" ({ "{") (expression_statement "pdStack_d4 = pdVar16;" (assignment_expression "pdStack_d4 = pdVar16" (identifier "pdStack_d4") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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_d4;" (assignment_expression "pdVar16 = pdStack_d4" (identifier "pdVar16") (= "=") (identifier "pdStack_d4")) (; ";")) (} "}")) (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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -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_d4 = pdVar16;\n      (**(code **)(pcStack_e0 + -0x7774))(7);\n      pdVar16 = pdStack_d4;\n      if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }\n    }" ({ "{") (expression_statement "pdStack_d4 = pdVar16;" (assignment_expression "pdStack_d4 = pdVar16" (identifier "pdStack_d4") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "(**(code **)(pcStack_e0 + -0x7774))(7);" (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "pdVar16 = pdStack_d4;" (assignment_expression "pdVar16 = pdStack_d4" (identifier "pdVar16") (= "=") (identifier "pdStack_d4")) (; ";")) (if_statement "if (extraout_v1_01 < (int)pdStack_d4) {\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" (if "if") (parenthesized_expression "(extraout_v1_01 < (int)pdStack_d4)" (( "(") (binary_expression "extraout_v1_01 < (int)pdStack_d4" (identifier "extraout_v1_01") (< "<") (cast_expression "(int)pdStack_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_d4"))) () ")")) (compound_statement "{\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        goto LAB_0006f4b4;\n      }" ({ "{") (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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 **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);\n    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }\n    uVar48 = (*pcVar33)(7);\n    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774))(7);" (assignment_expression "uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(pcStack_e0 + -0x7774))(7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar48 >> 0x20) == 0) {\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }\n    else {\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);\n      if ((uint)uVar48 < 2) {\n        uVar48 = (*pcVar33)(7);\n        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;\n        pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n        if ((uint)uVar48 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_0006f328;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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 **)(pcStack_e0 + -0x7774);\n    }" (else "else") (compound_statement "{\nLAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);\n    }" ({ "{") (labeled_statement "LAB_0006f310:\n      pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (statement_identifier "LAB_0006f310") (: ":") (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x7774);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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 **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar48 >> 0x20) == 0) &&\n       (pcVar33 = *(code **)(pcStack_e0 + -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 **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2)" (( "(") (comma_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x7774)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcStack_e0 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7774)" (( "(") (binary_expression "pcStack_e0 + -0x7774" (identifier "pcStack_e0") (+ "+") (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_d0;" (assignment_expression "pdVar17 = &dStack_d0" (identifier "pdVar17") (= "=") (pointer_expression "&dStack_d0" (& "&") (identifier "dStack_d0"))) (; ";")) (expression_statement "iStack_a8 = 1;" (assignment_expression "iStack_a8 = 1" (identifier "iStack_a8") (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_d0 = dVar44;" (assignment_expression "dStack_d0 = dVar44" (identifier "dStack_d0") (= "=") (identifier "dVar44")) (; ";")) (expression_statement "iStack_c8 = iVar2;" (assignment_expression "iStack_c8 = iVar2" (identifier "iStack_c8") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iStack_c4 = iVar5;" (assignment_expression "iStack_c4 = iVar5" (identifier "iStack_c4") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uStack_c0 = uVar3;" (assignment_expression "uStack_c0 = uVar3" (identifier "uStack_c0") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iStack_bc = iVar20;" (assignment_expression "iStack_bc = iVar20" (identifier "iStack_bc") (= "=") (identifier "iVar20")) (; ";")) (expression_statement "uStack_b8 = uVar7;" (assignment_expression "uStack_b8 = uVar7" (identifier "uStack_b8") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uStack_b4 = uVar8;" (assignment_expression "uStack_b4 = uVar8" (identifier "uStack_b4") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uStack_b0 = uVar6;" (assignment_expression "uStack_b0 = uVar6" (identifier "uStack_b0") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uStack_ac = uVar18;" (assignment_expression "uStack_ac = uVar18" (identifier "uStack_ac") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);" (call_expression "(**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7718))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x7718)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x7718)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x7718)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7718)" (( "(") (binary_expression "pcStack_e0 + -0x7718" (identifier "pcStack_e0") (+ "+") (number_literal "-0x7718")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00)" (( "(") (binary_expression "*(int *)(pcStack_e0 + -0x7f78) + 0x1c00" (pointer_expression "*(int *)(pcStack_e0 + -0x7f78)" (* "*") (cast_expression "(int *)(pcStack_e0 + -0x7f78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_e0 + -0x7f78)" (( "(") (binary_expression "pcStack_e0 + -0x7f78" (identifier "pcStack_e0") (+ "+") (number_literal "-0x7f78")) () ")")))) (+ "+") (number_literal "0x1c00")) () ")"))) (; ";")) (expression_statement "iVar2 = iStack_a8;" (assignment_expression "iVar2 = iStack_a8" (identifier "iVar2") (= "=") (identifier "iStack_a8")) (; ";")) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar8);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar8)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x79bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x79bc)" (( "(") (binary_expression "pcStack_e0 + -0x79bc" (identifier "pcStack_e0") (+ "+") (number_literal "-0x79bc")) () ")"))))) () ")")) (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_e0 + -0x79bc))(uVar7);" (call_expression "(**(code **)(pcStack_e0 + -0x79bc))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x79bc))" (( "(") (pointer_expression "**(code **)(pcStack_e0 + -0x79bc)" (* "*") (pointer_expression "*(code **)(pcStack_e0 + -0x79bc)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x79bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x79bc)" (( "(") (binary_expression "pcStack_e0 + -0x79bc" (identifier "pcStack_e0") (+ "+") (number_literal "-0x79bc")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (if_statement "if (iStack_9c == *piVar30) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(iStack_9c == *piVar30)" (( "(") (binary_expression "iStack_9c == *piVar30" (identifier "iStack_9c") (== "==") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "pcVar33 = *(code **)(pcStack_e0 + -0x784c);" (assignment_expression "pcVar33 = *(code **)(pcStack_e0 + -0x784c)" (identifier "pcVar33") (= "=") (pointer_expression "*(code **)(pcStack_e0 + -0x784c)" (* "*") (cast_expression "(code **)(pcStack_e0 + -0x784c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_e0 + -0x784c)" (( "(") (binary_expression "pcStack_e0 + -0x784c" (identifier "pcStack_e0") (+ "+") (number_literal "-0x784c")) () ")"))))) (; ";")) (expression_statement "pcVar34 = FUN_0006f518;" (assignment_expression "pcVar34 = FUN_0006f518" (identifier "pcVar34") (= "=") (identifier "FUN_0006f518")) (; ";")) (expression_statement "iVar9 = iStack_9c;" (assignment_expression "iVar9 = iStack_9c" (identifier "iVar9") (= "=") (identifier "iStack_9c")) (; ";")) (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 *)(iVar9 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar9 + 0x1c)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {\n    uVar28 = *(uint *)((int)pdVar17 + 0x1c);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c))" (( "(") (binary_expression "*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)" (pointer_expression "*(uint *)(iVar9 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (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 *)(iVar9 + 0x18);" (assignment_expression "uVar27 = *(uint *)(iVar9 + 0x18)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {\n    uVar27 = *(uint *)(pdVar17 + 3);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3))" (( "(") (binary_expression "*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)" (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (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_118 = iVar2;" (assignment_expression "iStack_118 = iVar2" (identifier "iStack_118") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iStack_11c = *piVar29;" (assignment_expression "iStack_11c = *piVar29" (identifier "iStack_11c") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";")) (expression_statement "iStack_114 = iVar5;" (assignment_expression "iStack_114 = iVar5" (identifier "iStack_114") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uStack_110 = uVar18;" (assignment_expression "uStack_110 = uVar18" (identifier "uStack_110") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "iStack_10c = iVar20;" (assignment_expression "iStack_10c = iVar20" (identifier "iStack_10c") (= "=") (identifier "iVar20")) (; ";")) (expression_statement "uStack_108 = uVar6;" (assignment_expression "uStack_108 = uVar6" (identifier "uStack_108") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "piStack_104 = piVar30;" (assignment_expression "piStack_104 = piVar30" (identifier "piStack_104") (= "=") (identifier "piVar30")) (; ";")) (expression_statement "uStack_100 = uVar3;" (assignment_expression "uStack_100 = uVar3" (identifier "uStack_100") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uStack_fc = uVar7;" (assignment_expression "uStack_fc = uVar7" (identifier "uStack_fc") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uStack_f8 = uVar8;" (assignment_expression "uStack_f8 = uVar8" (identifier "uStack_f8") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "pcStack_f4 = pcVar34;" (assignment_expression "pcStack_f4 = pcVar34" (identifier "pcStack_f4") (= "=") (identifier "pcVar34")) (; ";")) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x33a23c))();" (assignment_expression "uVar3 = (**(code **)(pcVar33 + 0x33a23c))()" (identifier "uVar3") (= "=") (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 "uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);" (assignment_expression "uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21)" (identifier "uVar7") (= "=") (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))(iVar9);" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))))" (( "(") (binary_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&\n     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))" (( "(") (binary_expression "(iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" (( "(") (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)))" (( "(") (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3))" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (, ",") (binary_expression "iVar2 == 4 ||\n      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3" (assignment_expression "iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339f9c))(iVar9)" (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 "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (, ",") (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_150;" (assignment_expression "piVar30 = &iStack_150" (identifier "piVar30") (= "=") (pointer_expression "&iStack_150" (& "&") (identifier "iStack_150"))) (; ";")) (expression_statement "iStack_124 = 1;" (assignment_expression "iStack_124 = 1" (identifier "iStack_124") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" (identifier "uStack_14c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_150 = 0;" (assignment_expression "iStack_150 = 0" (identifier "iStack_150") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" (identifier "uStack_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_148 = iVar9;" (assignment_expression "iStack_148 = iVar9" (identifier "iStack_148") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "pdStack_144 = pdVar17;" (assignment_expression "pdStack_144 = pdVar17" (identifier "pdStack_144") (= "=") (identifier "pdVar17")) (; ";")) (expression_statement "pdStack_140 = pdVar16;" (assignment_expression "pdStack_140 = pdVar16" (identifier "pdStack_140") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "uStack_13c = uVar21;" (assignment_expression "uStack_13c = uVar21" (identifier "uStack_13c") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uStack_138 = uVar3;" (assignment_expression "uStack_138 = uVar3" (identifier "uStack_138") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uStack_134 = uVar7;" (assignment_expression "uStack_134 = uVar7" (identifier "uStack_134") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uStack_12c = uVar27;" (assignment_expression "uStack_12c = uVar27" (identifier "uStack_12c") (= "=") (identifier "uVar27")) (; ";")) (expression_statement "uStack_128 = uVar28;" (assignment_expression "uStack_128 = uVar28" (identifier "uStack_128") (= "=") (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 "iVar5 = iStack_124;" (assignment_expression "iVar5 = iStack_124" (identifier "iVar5") (= "=") (identifier "iStack_124")) (; ";")) (expression_statement "uVar8 = uStack_14c;" (assignment_expression "uVar8 = uStack_14c" (identifier "uVar8") (= "=") (identifier "uStack_14c")) (; ";")) (expression_statement "iVar2 = iStack_150;" (assignment_expression "iVar2 = iStack_150" (identifier "iVar2") (= "=") (identifier "iStack_150")) (; ";")) (expression_statement "dVar35 = (double)CONCAT44(iStack_150,uStack_14c);" (assignment_expression "dVar35 = (double)CONCAT44(iStack_150,uStack_14c)" (identifier "dVar35") (= "=") (cast_expression "(double)CONCAT44(iStack_150,uStack_14c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iStack_150,uStack_14c)" (identifier "CONCAT44") (argument_list "(iStack_150,uStack_14c)" (( "(") (identifier "iStack_150") (, ",") (identifier "uStack_14c") () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar7);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar7)" (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 "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar33 + 0x3399dc))(uVar3);" (call_expression "(**(code **)(pcVar33 + 0x3399dc))(uVar3)" (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 "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (if_statement "if (0.0 <= dVar35) {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);\n    dStack_158 = dVar35;\n  }\n  else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\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_158 = 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_158 = dVar35;" (assignment_expression "dStack_158 = dVar35" (identifier "dStack_158") (= "=") (identifier "dVar35")) (; ";")) (} "}")) (else_clause "else {\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\n  }" (else "else") (compound_statement "{\n    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);\n    dStack_158 = -(double)CONCAT44(iVar2,uVar8);\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_158 = -(double)CONCAT44(iVar2,uVar8);" (assignment_expression "dStack_158 = -(double)CONCAT44(iVar2,uVar8)" (identifier "dStack_158") (= "=") (unary_expression "-(double)CONCAT44(iVar2,uVar8)" (- "-") (cast_expression "(double)CONCAT44(iVar2,uVar8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar2,uVar8)" (identifier "CONCAT44") (argument_list "(iVar2,uVar8)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar8") () ")")))))) (; ";")) (} "}")))) (if_statement "if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {\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_158)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158" (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_158")) () ")")) (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    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  } while (pdVar16 + 0x41 != pdVar10);" (do "do") (compound_statement "{\n    pdVar10 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar44;\n    pdVar17 = pdVar10;\n  }" ({ "{") (expression_statement "pdVar10 = pdVar17 + 1;" (assignment_expression "pdVar10 = pdVar17 + 1" (identifier "pdVar10") (= "=") (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 = pdVar10;" (assignment_expression "pdVar17 = pdVar10" (identifier "pdVar17") (= "=") (identifier "pdVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar16 + 0x41 != pdVar10)" (( "(") (binary_expression "pdVar16 + 0x41 != pdVar10" (binary_expression "pdVar16 + 0x41" (identifier "pdVar16") (+ "+") (number_literal "0x41")) (!= "!=") (identifier "pdVar10")) () ")")) (; ";")) (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 *)(iVar9 + 0x2c0)) {\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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 *)(iVar9 + 0x2c0))" (( "(") (binary_expression "0 < *(int *)(iVar9 + 0x2c0)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar9 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar9 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x2c0)" (( "(") (binary_expression "iVar9 + 0x2c0" (identifier "iVar9") (+ "+") (number_literal "0x2c0")) () ")"))))) () ")")) (compound_statement "{\n    piVar22 = *(int **)(iVar9 + 0x2d0);\n    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;\n    piVar12 = piVar22;\n    do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != 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 **)(iVar9 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar9 + 0x2d0)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(iVar9 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar9 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x2d0)" (( "(") (binary_expression "iVar9 + 0x2d0" (identifier "iVar9") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;" (assignment_expression "piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3" (identifier "piVar30") (= "=") (binary_expression "piVar22 + *(int *)(iVar9 + 0x2c0) * 3" (identifier "piVar22") (+ "+") (binary_expression "*(int *)(iVar9 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar9 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar9 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x2c0)" (( "(") (binary_expression "iVar9 + 0x2c0" (identifier "iVar9") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "3")))) (; ";")) (expression_statement "piVar12 = piVar22;" (assignment_expression "piVar12 = piVar22" (identifier "piVar12") (= "=") (identifier "piVar22")) (; ";")) (do_statement "do {\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    } while (piVar12 != piVar30);" (do "do") (compound_statement "{\n      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar12 = piVar12 + 3;\n    }" ({ "{") (if_statement "if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" (if "if") (parenthesized_expression "((piVar22[*piVar12 * 3 + 1] & 2U) != 0)" (( "(") (binary_expression "(piVar22[*piVar12 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar22[*piVar12 * 3 + 1] & 2U)" (( "(") (binary_expression "piVar22[*piVar12 * 3 + 1] & 2U" (subscript_expression "piVar22[*piVar12 * 3 + 1]" (identifier "piVar22") ([ "[") (binary_expression "*piVar12 * 3 + 1" (binary_expression "*piVar12 * 3" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (* "*") (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 "piVar12 = piVar12 + 3;" (assignment_expression "piVar12 = piVar12 + 3" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 3" (identifier "piVar12") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != piVar30)" (( "(") (binary_expression "piVar12 != piVar30" (identifier "piVar12") (!= "!=") (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_11c == iVar2) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_11c == iVar2)" (( "(") (binary_expression "iStack_11c == iVar2" (identifier "iStack_11c") (== "==") (identifier "iVar2")) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (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_11c;" (assignment_expression "iVar2 = iStack_11c" (identifier "iVar2") (= "=") (identifier "iStack_11c")) (; ";")) (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 "uVar6 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar2 + 0x18)" (identifier "uVar6") (= "=") (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    uVar6 = 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    uVar6 = piVar30[6];\n  }" ({ "{") (expression_statement "uVar6 = piVar30[6];" (assignment_expression "uVar6 = piVar30[6]" (identifier "uVar6") (= "=") (subscript_expression "piVar30[6]" (identifier "piVar30") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x339e44))();" (assignment_expression "uVar3 = (**(code **)(pcVar33 + 0x339e44))()" (identifier "uVar3") (= "=") (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 "uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);" (assignment_expression "uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22)" (identifier "uVar7") (= "=") (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_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }\n  else {\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 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_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    iVar5 = 1;\n    dVar46 = 0.0;\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n  }" ({ "{") (expression_statement "iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iStack_1e0") (= "=") (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 "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (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    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }" (else "else") (compound_statement "{\n    iVar5 = *(int *)(pcVar33 + 0x338fd0);\n    iVar20 = *(int *)(pcVar33 + 0x338fd0);\n    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);\n    dVar47 = *(double *)(iVar5 + 0x1438);\n    uVar28 = 0;\n    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);\n    dVar46 = 0.0;\n    pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    dVar35 = dVar46;\n    dVar44 = dVar46;\n    dVar37 = dVar47;\n    do {\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);\n    iVar5 = 1;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar5 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iVar5") (= "=") (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 "iVar20 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iVar20 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iVar20") (= "=") (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_1e0 = *(int *)(pcVar33 + 0x338fd0);" (assignment_expression "iStack_1e0 = *(int *)(pcVar33 + 0x338fd0)" (identifier "iStack_1e0") (= "=") (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 *)(iVar5 + 0x1438);" (assignment_expression "dVar47 = *(double *)(iVar5 + 0x1438)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(iVar5 + 0x1438)" (* "*") (cast_expression "(double *)(iVar5 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1438)" (( "(") (binary_expression "iVar5 + 0x1438" (identifier "iVar5") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708)" (identifier "uVar45") (= "=") (binary_expression "(ulonglong)*(uint *)(iVar20 + 0x3708)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(iVar20 + 0x3708)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3708)" (( "(") (binary_expression "iVar20 + 0x3708" (identifier "iVar20") (+ "+") (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      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    } while (uVar28 != uVar18);" (do "do") (compound_statement "{\n      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);\n      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);\n      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }\n      if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }\nLAB_0006fc4c:\n      uVar28 = uVar28 + 1;\n      pcVar34 = *(code **)(pcVar33 + 0x339d4c);\n    }" ({ "{") (expression_statement "pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);" (assignment_expression "pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" (identifier "pfVar11") (= "=") (cast_expression "(float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(uVar3,0,uVar28,uVar6,1,piVar22)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") (, ",") (identifier "uVar28") (, ",") (identifier "uVar6") (, ",") (number_literal "1") (, ",") (identifier "piVar22") () ")"))))) (; ";")) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,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 "(uVar7,0,uVar28,uVar6,1,piVar22)" (( "(") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (identifier "uVar28") (, ",") (identifier "uVar6") (, ",") (number_literal "1") (, ",") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {\n        iVar5 = 0;\n        goto LAB_0006fc88;\n      }" (if "if") (parenthesized_expression "((pfVar11 == (float *)0x0) || (iVar9 == 0))" (( "(") (binary_expression "(pfVar11 == (float *)0x0) || (iVar9 == 0)" (parenthesized_expression "(pfVar11 == (float *)0x0)" (( "(") (binary_expression "pfVar11 == (float *)0x0" (identifier "pfVar11") (== "==") (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        iVar5 = 0;\n        goto LAB_0006fc88;\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0006fc88;" (goto "goto") (statement_identifier "LAB_0006fc88") (; ";")) (} "}"))) (if_statement "if (0 < (int)uVar6) {\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\n      }" (if "if") (parenthesized_expression "(0 < (int)uVar6)" (( "(") (binary_expression "0 < (int)uVar6" (number_literal "0") (< "<") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6"))) () ")")) (compound_statement "{\n        uVar27 = 0;\n        piVar29 = *(int **)(iVar2 + 0x2d0);\n        dVar40 = *(double *)(iStack_1e0 + 0x1440);\n        iVar31 = piVar29[0x13];\n        dVar43 = *(double *)(iVar5 + 0x1438);\n        fVar39 = *(float *)(iVar20 + 0x3708);\n        do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);\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_1e0 + 0x1440);" (assignment_expression "dVar40 = *(double *)(iStack_1e0 + 0x1440)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" (* "*") (cast_expression "(double *)(iStack_1e0 + 0x1440)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1e0 + 0x1440)" (( "(") (binary_expression "iStack_1e0 + 0x1440" (identifier "iStack_1e0") (+ "+") (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 *)(iVar5 + 0x1438);" (assignment_expression "dVar43 = *(double *)(iVar5 + 0x1438)" (identifier "dVar43") (= "=") (pointer_expression "*(double *)(iVar5 + 0x1438)" (* "*") (cast_expression "(double *)(iVar5 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1438)" (( "(") (binary_expression "iVar5 + 0x1438" (identifier "iVar5") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "fVar39 = *(float *)(iVar20 + 0x3708);" (assignment_expression "fVar39 = *(float *)(iVar20 + 0x3708)" (identifier "fVar39") (= "=") (pointer_expression "*(float *)(iVar20 + 0x3708)" (* "*") (cast_expression "(float *)(iVar20 + 0x3708)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3708)" (( "(") (binary_expression "iVar20 + 0x3708" (identifier "iVar20") (+ "+") (number_literal "0x3708")) () ")"))))) (; ";")) (do_statement "do {\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        } while (uVar27 != uVar6);" (do "do") (compound_statement "{\n          while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }\n          dVar36 = dVar43;\n          if (piVar29[0xd] != 0) {\n            dVar36 = (double)pfVar11[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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);\n          }\n          uVar27 = uVar27 + 1;\n          pfVar11 = pfVar11 + iVar26;\n          iVar9 = iVar9 + piVar30[0xb0] * 4;\n        }" ({ "{") (while_statement "while (((iVar31 != 0 && (pfVar11[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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) goto LAB_0006fc4c;\n          }" (while "while") (parenthesized_expression "(((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))))" (( "(") (parenthesized_expression "((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))" (( "(") (binary_expression "(iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||\n                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&\n                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45)))" (parenthesized_expression "(iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39))" (( "(") (binary_expression "iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)" (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pfVar11[piVar29[0x14]] <= fVar39)" (( "(") (binary_expression "pfVar11[piVar29[0x14]] <= fVar39" (subscript_expression "pfVar11[piVar29[0x14]]" (identifier "pfVar11") ([ "[") (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            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);\n            iVar9 = iVar9 + piVar30[0xb0] * 4;\n            if (uVar27 == uVar6) 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 "pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);" (assignment_expression "pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0)" (identifier "pfVar11") (= "=") (binary_expression "pfVar11 + *(int *)(iVar2 + 0x2c0)" (identifier "pfVar11") (+ "+") (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 == uVar6) goto LAB_0006fc4c;" (if "if") (parenthesized_expression "(uVar27 == uVar6)" (( "(") (binary_expression "uVar27 == uVar6" (identifier "uVar27") (== "==") (identifier "uVar6")) () ")")) (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)pfVar11[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)pfVar11[piVar29[0xe]] * dVar40;\n          }" ({ "{") (expression_statement "dVar36 = (double)pfVar11[piVar29[0xe]] * dVar40;" (assignment_expression "dVar36 = (double)pfVar11[piVar29[0xe]] * dVar40" (identifier "dVar36") (= "=") (binary_expression "(double)pfVar11[piVar29[0xe]] * dVar40" (cast_expression "(double)pfVar11[piVar29[0xe]]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "pfVar11[piVar29[0xe]]" (identifier "pfVar11") ([ "[") (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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 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            piVar12 = piVar29;\n            pfVar19 = pfVar11;\n            do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 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 "piVar12 = piVar29;" (assignment_expression "piVar12 = piVar29" (identifier "piVar12") (= "=") (identifier "piVar29")) (; ";")) (expression_statement "pfVar19 = pfVar11;" (assignment_expression "pfVar19 = pfVar11" (identifier "pfVar19") (= "=") (identifier "pfVar11")) (; ";")) (do_statement "do {\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            } while (pdVar16 != pdVar17 + iVar26);" (do "do") (compound_statement "{\n              iVar24 = *piVar12;\n              iVar13 = iVar23 + iVar24 * 0xc;\n              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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              piVar12 = piVar12 + 3;\n              pfVar19 = pfVar19 + 1;\n            }" ({ "{") (expression_statement "iVar24 = *piVar12;" (assignment_expression "iVar24 = *piVar12" (identifier "iVar24") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "iVar13 = iVar23 + iVar24 * 0xc;" (assignment_expression "iVar13 = iVar23 + iVar24 * 0xc" (identifier "iVar13") (= "=") (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 *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)) {\n                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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 *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0))" (( "(") (binary_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))\n                 && ((uVar25 & 2) != 0)" (parenthesized_expression "((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))" (( "(") (binary_expression "(piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 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 *)(iVar13 + 4), uVar25 != 0)" (( "(") (comma_expression "uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar13 + 4)" (identifier "uVar25") (= "=") (pointer_expression "*(uint *)(iVar13 + 4)" (* "*") (cast_expression "(uint *)(iVar13 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (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 *)(iVar13 + 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 *)(iVar13 + 8) * 4);" (assignment_expression "dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" (identifier "dVar41") (= "=") (cast_expression "(double)*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar13 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar13 + 8) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar13 + 8) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar13 + 8) * 4" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (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 "piVar12 = piVar12 + 3;" (assignment_expression "piVar12 = piVar12 + 3" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 3" (identifier "piVar12") (+ "+") (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 "pfVar11 = pfVar11 + iVar26;" (assignment_expression "pfVar11 = pfVar11 + iVar26" (identifier "pfVar11") (= "=") (binary_expression "pfVar11 + iVar26" (identifier "pfVar11") (+ "+") (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 != uVar6)" (( "(") (binary_expression "uVar27 != uVar6" (identifier "uVar27") (!= "!=") (identifier "uVar6")) () ")")) (; ";")) (} "}"))) (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 "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0006fc88:\n  (**(code **)(pcVar33 + 0x3395e4))(uVar7);" (statement_identifier "LAB_0006fc88") (: ":") (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar7);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar7)" (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 "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar33 + 0x3395e4))(uVar3);" (call_expression "(**(code **)(pcVar33 + 0x3395e4))(uVar3)" (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 "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "dVar37 = *(double *)(iStack_1e0 + 0x1440);" (assignment_expression "dVar37 = *(double *)(iStack_1e0 + 0x1440)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(iStack_1e0 + 0x1440)" (* "*") (cast_expression "(double *)(iStack_1e0 + 0x1440)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1e0 + 0x1440)" (( "(") (binary_expression "iStack_1e0 + 0x1440" (identifier "iStack_1e0") (+ "+") (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 iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))

/* 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 */

type_1 function_1(type_2 *var_1,type_3 *exception)

{
  bool var_28;
  type_4 var_4;
  type_5 var_7;
  type_6 uVar4;
  int var_8;
  type_1 var_10;
  type_7 *var_14;
  type_1 var_19;
  type_5 var_51;
  type_6 uVar10;
  type_6 uVar11;
  int var_24;
  double *var_39;
  float *var_45;
  int var_26;
  double *extraout_v1_00;
  int var_29;
  int var_27;
  int *var_41;
  int var_33;
  int extraout_v1_04;
  int var_35;
  int var_34;
  int var_55;
  type_2 *var_12;
  type_7 *var_15;
  int var_21;
  type_3 *exception_00;
  double *var_38;
  double *var_31;
  float *var_64;
  int var_44;
  type_6 uVar22;
  int *var_40;
  int var_49;
  int var_54;
  type_5 var_56;
  int var_53;
  type_5 var_50;
  type_2 *unaff_s0;
  type_5 var_32;
  int *piVar30;
  int *var_42;
  int var_47;
  type_7 *var_13;
  type_8 *var_20;
  type_8 *pcVar35;
  double var_22;
  double var_58;
  double var_65;
  double var_59;
  float var_48;
  double var_52;
  double var_57;
  double var_62;
  double dVar44;
  double var_23;
  type_9 uVar46;
  double var_63;
  double var_60;
  type_10 uVar49;
  int var_46;
  double var_37;
  int iStack_150;
  type_6 uStack_14c;
  int iStack_148;
  double *pdStack_144;
  double *pdStack_140;
  type_6 uStack_13c;
  type_6 uStack_138;
  type_6 uStack_134;
  type_6 uStack_130;
  type_5 uStack_12c;
  type_5 uStack_128;
  type_1 MStack_124;
  int var_43;
  type_1 MStack_118;
  int iStack_114;
  type_5 uStack_110;
  int iStack_10c;
  type_5 uStack_108;
  int *piStack_104;
  type_6 uStack_100;
  type_6 uStack_fc;
  type_6 uStack_f8;
  type_8 *pcStack_f4;
  type_8 *var_25;
  double *pdStack_d4;
  double dStack_d0;
  int iStack_c8;
  int iStack_c4;
  type_6 uStack_c0;
  int iStack_bc;
  type_6 uStack_b8;
  type_6 uStack_b4;
  type_5 uStack_b0;
  type_5 uStack_ac;
  type_1 MStack_a8;
  int var_30;
  type_2 *pIStack_98;
  
  if (var_1 != (type_2 *)0x0) {
    if (var_1->signature == 0xabacadab) {
      if (var_1->debug == var_2) {
        var_4 = var_1->type;
      }
      else {
        (*(type_8 *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,var_3 + -0x5970,
                   var_3 + -0x3ff4,0x5b2);
        var_4 = var_1->type;
      }
      if (var_4 == var_5) {
        return MagickTrue;
      }
      var_7 = var_1->var_15 - var_6;
      if (var_7 < 0x1f) {
        if (-1 < (int)((0x403c0001U >> (var_7 & 0x1f)) << 0x1f)) {
          return var_2;
        }
        uVar4 = (*(type_8 *)PTR_GetImageProperty_003a93fc)
                          (var_1,var_3 + -0x58ac,exception
                          );
        var_8 = (*(type_8 *)PTR_IsStringFalse_003a921c)(uVar4);
        if ((var_8 == 0) &&
           (var_8 = (*(type_8 *)PTR_IdentifyImageMonochrome_003a96bc)(var_1,exception), var_8 != 0)) {
          var_1->var_15 = var_6;
          var_10 = var_9(var_1,exception);
          if (var_10 != var_2) {
            var_1->type = var_5;
            return MagickTrue;
          }
        }
      }
      return var_2;
    }
    (*(type_8 *)PTR___assert_fail_003a9608)
              (var_3 + -0x3784,
               var_3 + -0x5970,0x5b0,
               var_3 + -0x3fe0);
    unaff_s0 = var_1;
  }
  exception_00 = (type_3 *)0x5af;
  var_15 = var_3 + -0x5970;
  var_12 = (type_2 *)(var_11 + 0xdd0);
  var_13 = PTR___assert_fail_003a9608;
  (*(type_8 *)PTR___assert_fail_003a9608)();
  if (var_12 == (type_2 *)0x0) {
    (**(type_8 **)(var_13 + 0x33a644))
              (*(int *)(var_13 + 0x33991c) + 0xdd0,*(int *)(var_13 + 0x339924) + -0x5970,0x5e5,
               *(int *)(var_13 + 0x339924) + -0x4010);
  }
  else {
    unaff_s0 = var_12;
    if (var_12->signature == 0xabacadab) {
      if (var_12->debug == var_2) {
        var_14 = (type_7 *)var_12->var_15;
      }
      else {
        (**(type_8 **)(var_13 + 0x33a21c))
                  (0x8000,*(int *)(var_13 + 0x339924) + -0x5970,
                   *(int *)(var_13 + 0x339924) + -0x402c,0x5e8);
        var_14 = (type_7 *)var_12->var_15;
      }
      if (var_14 == var_15) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_10 = (**(type_8 **)(var_13 + 0x339d7c))(var_12,var_15,exception_00);
        return var_10;
      }
      (**(type_8 **)(var_13 + 0x33a864))(var_12,*(int *)(var_13 + 0x339924) + -0x5890);
      (**(type_8 **)(var_13 + 0x33a864))(var_12,*(int *)(var_13 + 0x339924) + -0x588c);
      if (var_15 == (type_7 *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_10 = (**(type_8 **)(var_13 + 0x339d7c))(var_12,0,exception_00);
        return var_10;
      }
      if ((type_7 *)0x1 < var_15 + -0x17) {
        if (var_12->var_15 - var_16 < 2) {
          var_10 = MagickTrue;
        }
        else {
          var_10 = var_17(var_12,exception_00);
          if (var_10 == var_2) {
            return var_2;
          }
        }
        var_19 = var_18(var_12,(type_11)var_15,exception_00);
        if (var_19 == var_2) {
          return var_2;
        }
        return var_10;
      }
      var_10 = var_17(var_12,exception_00);
      return var_10;
    }
  }
  uVar4 = 0x5e6;
  var_20 = *(type_8 **)(var_13 + 0x33a644);
  var_44 = *(int *)(var_13 + 0x339924) + -0x4010;
  var_21 = *(int *)(var_13 + 0x339924) + -0x5970;
  var_8 = *(int *)(var_13 + 0x339924) + -0x3784;
  (*var_20)();
  var_25 = var_20 + 0x3416c0;
  var_22 = *(double *)(var_21 + 0x248);
  var_23 = *(double *)(var_8 + 0x248);
  var_42 = *(int **)(var_20 + 0x33a040);
  var_30 = *var_42;
  if (var_22 < var_23) {
    var_24 = *(int *)(var_20 + 0x3396f8);
    if (var_23 <= *(double *)(*(int *)(var_20 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    var_23 = var_23 * var_23;
  }
  else {
    var_24 = *(int *)(var_20 + 0x3396f8);
    if (*(double *)(*(int *)(var_20 + 0x3396f8) + -0x5ac8) < var_22) {
      if (var_22 < var_23) goto LAB_0006f470;
      var_23 = var_22 * var_22;
    }
    else {
LAB_0006f270:
      var_23 = *(double *)(var_24 + -0x5ad0);
    }
  }
  var_7 = *(type_5 *)(var_8 + 0x1c);
  if (*(type_5 *)(var_8 + 0x1c) <= *(type_5 *)(var_21 + 0x1c)) {
    var_7 = *(type_5 *)(var_21 + 0x1c);
  }
  var_51 = *(type_5 *)(var_8 + 0x18);
  if (*(type_5 *)(var_8 + 0x18) <= *(type_5 *)(var_21 + 0x18)) {
    var_51 = *(type_5 *)(var_21 + 0x18);
  }
  pIStack_98 = unaff_s0;
  uVar10 = (**(type_8 **)(var_20 + 0x33a564))(var_8,var_44);
  uVar11 = (**(type_8 **)(var_25 + -0x715c))(var_21,var_44);
  var_24 = (**(type_8 **)(var_25 + -0x73fc))(var_8);
  if (((var_24 == 4) || (var_24 = (**(type_8 **)(var_25 + -0x73fc))(var_8), var_24 == 3)) &&
     ((var_24 = (**(type_8 **)(var_25 + -0x73fc))(var_8), var_24 == 4 ||
      (var_24 = (**(type_8 **)(var_25 + -0x73fc))(var_8), var_24 == 3)))) {
    (**(type_8 **)(var_25 + -0x7774))(7);
    var_32 = var_7;
    if ((int)var_7 < 0) {
      var_32 = var_7 + 0x3f;
    }
    var_38 = (double *)((int)var_32 >> 6);
    if (var_26 < (int)var_38) {
      pdStack_d4 = var_38;
      (**(type_8 **)(var_25 + -0x7774))(7);
      var_28 = var_27 < 2;
      var_38 = pdStack_d4;
    }
    else {
      var_28 = (int)var_7 < 0x80;
    }
    if ((bool)(var_28 ^ 1)) {
      pdStack_d4 = var_38;
      (**(type_8 **)(var_25 + -0x7774))(7);
      var_38 = pdStack_d4;
      if (var_29 < (int)pdStack_d4) {
        var_20 = *(type_8 **)(var_25 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      var_38 = (double *)0x1;
    }
  }
  else {
    uVar49 = (**(type_8 **)(var_25 + -0x7774))(7);
    if ((int)((type_9)uVar49 >> 0x20) == 0) {
      var_20 = *(type_8 **)(var_25 + -0x7774);
      if ((type_5)uVar49 < 2) {
        uVar49 = (*var_20)(7);
        if ((int)((type_9)uVar49 >> 0x20) != 0) goto LAB_0006f310;
        var_20 = *(type_8 **)(var_25 + -0x7774);
        if ((type_5)uVar49 < 2) {
          var_38 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      var_20 = *(type_8 **)(var_25 + -0x7774);
    }
    uVar49 = (*var_20)(7);
    if (((int)((type_9)uVar49 >> 0x20) == 0) &&
       (var_20 = *(type_8 **)(var_25 + -0x7774), (type_5)uVar49 < 2)) {
LAB_0006f4b4:
      (*var_20)(7);
      var_38 = extraout_v1_00;
    }
    else {
      var_38 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar22 = 0;
  var_31 = &dStack_d0;
  MStack_a8 = MagickTrue;
  dStack_d0 = var_23;
  iStack_c8 = var_8;
  iStack_c4 = var_21;
  uStack_c0 = uVar4;
  iStack_bc = var_44;
  uStack_b8 = uVar10;
  uStack_b4 = uVar11;
  uStack_b0 = var_51;
  uStack_ac = var_7;
  (**(type_8 **)(var_25 + -0x7718))(*(int *)(var_25 + -0x7f78) + 0x1c00);
  var_10 = MStack_a8;
  (**(type_8 **)(var_25 + -0x79bc))(uVar11);
  (**(type_8 **)(var_25 + -0x79bc))(uVar10);
  if (var_30 == *var_42) {
    return var_10;
  }
  var_20 = *(type_8 **)(var_25 + -0x784c);
  pcVar35 = GetMeanAbsoluteDistortion;
  var_8 = var_30;
  (*var_20)();
  piVar30 = *(int **)(var_20 + 0x339d18);
  var_32 = *(type_5 *)(var_8 + 0x1c);
  if (*(type_5 *)(var_8 + 0x1c) <= *(type_5 *)((int)var_31 + 0x1c)) {
    var_32 = *(type_5 *)((int)var_31 + 0x1c);
  }
  var_50 = *(type_5 *)(var_8 + 0x18);
  if (*(type_5 *)(var_8 + 0x18) <= *(type_5 *)(var_31 + 3)) {
    var_50 = *(type_5 *)(var_31 + 3);
  }
  MStack_118 = var_10;
  var_43 = *piVar30;
  iStack_114 = var_21;
  uStack_110 = var_7;
  iStack_10c = var_44;
  uStack_108 = var_51;
  piStack_104 = var_42;
  uStack_100 = uVar4;
  uStack_fc = uVar10;
  uStack_f8 = uVar11;
  pcStack_f4 = pcVar35;
  uVar4 = (**(type_8 **)(var_20 + 0x33a23c))();
  uVar10 = (**(type_8 **)(var_20 + 0x33a23c))(var_31,uVar22);
  var_21 = (**(type_8 **)(var_20 + 0x339f9c))(var_8);
  if (((var_21 == 4) || (var_21 = (**(type_8 **)(var_20 + 0x339f9c))(var_8), var_21 == 3)) &&
     ((var_21 = (**(type_8 **)(var_20 + 0x339f9c))(var_8), var_21 == 4 ||
      (var_21 = (**(type_8 **)(var_20 + 0x339f9c))(var_8), var_21 == 3)))) {
    (**(type_8 **)(var_20 + 0x339c24))(7);
    var_7 = var_32;
    if ((int)var_32 < 0) {
      var_7 = var_32 + 0x3f;
    }
    var_21 = (int)var_7 >> 6;
    if (var_33 < var_21) {
      (**(type_8 **)(var_20 + 0x339c24))(7);
      var_28 = var_34 < 2;
    }
    else {
      var_28 = (int)var_32 < 0x80;
    }
    if ((bool)(var_28 ^ 1)) {
      (**(type_8 **)(var_20 + 0x339c24))(7);
      if (var_35 < var_21) {
        pcVar35 = *(type_8 **)(var_20 + 0x339c24);
        goto LAB_0006f8ac;
      }
    }
    else {
      var_21 = 1;
    }
  }
  else {
    uVar49 = (**(type_8 **)(var_20 + 0x339c24))(7);
    if ((int)((type_9)uVar49 >> 0x20) == 0) {
      pcVar35 = *(type_8 **)(var_20 + 0x339c24);
      if ((type_5)uVar49 < 2) {
        uVar49 = (*pcVar35)(7);
        if ((int)((type_9)uVar49 >> 0x20) != 0) goto LAB_0006f60c;
        pcVar35 = *(type_8 **)(var_20 + 0x339c24);
        if ((type_5)uVar49 < 2) {
          var_21 = 1;
          goto LAB_0006f624;
        }
      }
    }
    else {
LAB_0006f60c:
      pcVar35 = *(type_8 **)(var_20 + 0x339c24);
    }
    uVar49 = (*pcVar35)(7);
    if (((int)((type_9)uVar49 >> 0x20) == 0) &&
       (pcVar35 = *(type_8 **)(var_20 + 0x339c24), (type_5)uVar49 < 2)) {
LAB_0006f8ac:
      (*pcVar35)(7);
      var_21 = extraout_v1_04;
    }
    else {
      var_21 = 2;
    }
  }
LAB_0006f624:
  var_40 = (int *)0x0;
  var_42 = &iStack_150;
  MStack_124 = MagickTrue;
  uStack_14c = 0;
  iStack_150 = 0;
  uStack_130 = 0;
  iStack_148 = var_8;
  pdStack_144 = var_31;
  pdStack_140 = var_38;
  uStack_13c = uVar22;
  uStack_138 = uVar4;
  uStack_134 = uVar10;
  uStack_12c = var_50;
  uStack_128 = var_32;
  (**(type_8 **)(var_20 + 0x339c80))(*(int *)(var_20 + 0x339420) + 0x2498,var_42,var_21);
  var_10 = MStack_124;
  uVar11 = uStack_14c;
  var_21 = iStack_150;
  var_22 = (double)var_36(iStack_150,uStack_14c);
  (**(type_8 **)(var_20 + 0x3399dc))(uVar10);
  (**(type_8 **)(var_20 + 0x3399dc))(uVar4);
  if (0.0 <= var_22) {
    var_23 = *(double *)(*(int *)(var_20 + 0x3393c8) + 0x1438);
    var_37 = var_22;
  }
  else {
    var_23 = *(double *)(*(int *)(var_20 + 0x3393c8) + 0x1a78);
    var_37 = -(double)var_36(var_21,uVar11);
  }
  if (*(double *)(*(int *)(var_20 + 0x3393c8) + 0x13f8) <= var_37) {
    var_23 = *(double *)(*(int *)(var_20 + 0x3393c8) + 0x1438) / var_22;
  }
  else {
    var_23 = var_23 / *(double *)(*(int *)(var_20 + 0x3393c8) + 0x13f8);
  }
  var_31 = var_38;
  do {
    var_39 = var_31 + 1;
    *var_31 = *var_31 * var_23;
    var_31 = var_39;
  } while (var_38 + 0x41 != var_39);
  var_31 = (double *)0x0;
  if (0 < *(int *)(var_8 + 0x2c0)) {
    var_40 = *(int **)(var_8 + 0x2d0);
    var_42 = var_40 + *(int *)(var_8 + 0x2c0) * 3;
    var_41 = var_40;
    do {
      if ((var_40[*var_41 * 3 + 1] & 2U) != 0) {
        var_31 = (double *)((int)var_31 + 1);
      }
      var_41 = var_41 + 3;
    } while (var_41 != var_42);
    if (var_31 != (double *)0x0) {
      var_22 = (double)(int)var_31;
      if ((int)var_31 < 0) {
        var_22 = var_22 + *(double *)(*(int *)(var_20 + 0x3393c8) + 0x1418);
      }
      goto LAB_0006f778;
    }
  }
  var_22 = *(double *)(*(int *)(var_20 + 0x3393c8) + 0x1438);
LAB_0006f778:
  var_8 = *piVar30;
  var_38[0x40] = var_38[0x40] / var_22;
  if (var_43 == var_8) {
    return var_10;
  }
  var_20 = *(type_8 **)(var_20 + 0x339b4c);
  var_8 = var_43;
  (*var_20)();
  var_7 = *(type_5 *)(var_8 + 0x1c);
  if (*(type_5 *)(var_8 + 0x1c) <= (type_5)var_42[7]) {
    var_7 = var_42[7];
  }
  var_51 = *(type_5 *)(var_8 + 0x18);
  if (*(type_5 *)(var_8 + 0x18) <= (type_5)var_42[6]) {
    var_51 = var_42[6];
  }
  uVar4 = (**(type_8 **)(var_20 + 0x339e44))();
  uVar10 = (**(type_8 **)(var_20 + 0x339e44))(var_42,var_40);
  if ((int)var_7 < 1) {
    var_46 = *(int *)(var_20 + 0x338fd0);
    var_10 = MagickTrue;
    var_63 = 0.0;
    var_22 = var_63;
    var_23 = var_63;
  }
  else {
    var_21 = *(int *)(var_20 + 0x338fd0);
    var_44 = *(int *)(var_20 + 0x338fd0);
    var_46 = *(int *)(var_20 + 0x338fd0);
    var_60 = *(double *)(var_21 + 0x1438);
    var_32 = 0;
    uVar46 = (type_9)*(type_5 *)(var_44 + 0x3708);
    var_63 = 0.0;
    pcVar35 = *(type_8 **)(var_20 + 0x339d4c);
    var_22 = var_63;
    var_23 = var_63;
    var_65 = var_60;
    do {
      var_45 = (float *)(*pcVar35)(uVar4,0,var_32,var_51,1,var_40);
      var_24 = (**(type_8 **)(var_20 + 0x339d4c))(uVar10,0,var_32,var_51,1,var_40);
      if ((var_45 == (float *)0x0) || (var_24 == 0)) {
        var_10 = var_2;
        goto LAB_0006fc88;
      }
      if (0 < (int)var_51) {
        var_50 = 0;
        piVar30 = *(int **)(var_8 + 0x2d0);
        var_52 = *(double *)(var_46 + 0x1440);
        var_47 = piVar30[0x13];
        dVar44 = *(double *)(var_21 + 0x1438);
        var_48 = *(float *)(var_44 + 0x3708);
        do {
          while (((var_47 != 0 && (var_45[piVar30[0x14]] <= var_48)) ||
                 ((var_49 = var_42[0xb4], *(int *)(var_49 + 0x4c) != 0 &&
                  (*(float *)(var_24 + *(int *)(var_49 + 0x50) * 4) <= (float)uVar46))))) {
            var_50 = var_50 + 1;
            var_45 = var_45 + *(int *)(var_8 + 0x2c0);
            var_24 = var_24 + var_42[0xb0] * 4;
            if (var_50 == var_51) goto LAB_0006fc4c;
          }
          var_58 = dVar44;
          if (piVar30[0xd] != 0) {
            var_58 = (double)var_45[piVar30[0xe]] * var_52;
          }
          var_59 = var_65;
          if (*(int *)(var_49 + 0x34) != 0) {
            var_59 = (double)*(float *)(var_24 + *(int *)(var_49 + 0x38) * 4) * var_52;
          }
          var_53 = *(int *)(var_8 + 0x2c0);
          if (0 < var_53) {
            var_38 = var_31;
            var_41 = piVar30;
            var_64 = var_45;
            do {
              var_54 = *var_41;
              var_55 = var_49 + var_54 * 0xc;
              if (((piVar30[var_54 * 3 + 1] != 0) && (var_56 = *(type_5 *)(var_55 + 4), var_56 != 0))
                 && ((var_56 & 2) != 0)) {
                var_57 = (double)*(float *)(var_24 + *(int *)(var_55 + 8) * 4);
                if (var_54 == 4) {
                  var_57 = (double)*var_64 - var_57;
                }
                else {
                  var_57 = var_58 * (double)*var_64 - var_59 * var_57;
                }
                var_22 = var_22 + var_60;
                var_62 = var_61(var_57);
                var_63 = var_62 * var_62 + var_63;
                *var_38 = *var_38 + var_62;
                var_31[0x40] = var_31[0x40] + var_62;
                if (var_23 < var_62) {
                  var_23 = var_61(var_57);
                }
              }
              var_38 = var_38 + 1;
              var_41 = var_41 + 3;
              var_64 = var_64 + 1;
            } while (var_38 != var_31 + var_53);
          }
          var_50 = var_50 + 1;
          var_45 = var_45 + var_53;
          var_24 = var_24 + var_42[0xb0] * 4;
        } while (var_50 != var_51);
      }
LAB_0006fc4c:
      var_32 = var_32 + 1;
      pcVar35 = *(type_8 **)(var_20 + 0x339d4c);
    } while (var_32 != var_7);
    var_10 = MagickTrue;
  }
LAB_0006fc88:
  (**(type_8 **)(var_20 + 0x3395e4))(uVar10);
  (**(type_8 **)(var_20 + 0x3395e4))(uVar4);
  var_65 = *(double *)(var_46 + 0x1440);
  var_60 = *(double *)(*(int *)(var_20 + 0x338fd0) + 0x3700);
  *(double *)(var_8 + 0x2d8) = var_31[0x40] / var_22;
  *(double *)(var_8 + 0x2e8) = var_23 * var_65;
  *(double *)(var_8 + 0x2e0) = (var_63 * var_60) / var_22;
  return var_10;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (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: (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: (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: (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: (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: (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: (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: (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: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (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))))) right: (number_literal)))))) consequence: (compound_statement (return_statement (number_literal)))) (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) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (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 (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement (number_literal)))))))) (return_statement (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier) (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (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) (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)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal)))) (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: (identifier) right: (identifier))) consequence: (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 (identifier) (identifier) (identifier))))) (return_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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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 (identifier) (number_literal) (identifier))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (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(undefined *param_1,undefined4 param_2)

{
  bool bVar1;
  int iVar2;
  undefined4 uVar3;
  undefined *puVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  double *pdVar10;
  float *pfVar11;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int *piVar12;
  int extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int iVar13;
  undefined *puVar14;
  undefined *puVar15;
  double *pdVar16;
  double *pdVar17;
  uint uVar18;
  float *pfVar19;
  int iVar20;
  undefined4 uVar21;
  int *piVar22;
  int iVar23;
  int iVar24;
  uint uVar25;
  int iVar26;
  uint uVar27;
  undefined *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_1e0;
  double dStack_158;
  int iStack_150;
  undefined4 uStack_14c;
  int iStack_148;
  double *pdStack_144;
  double *pdStack_140;
  undefined4 uStack_13c;
  undefined4 uStack_138;
  undefined4 uStack_134;
  undefined4 uStack_130;
  uint uStack_12c;
  uint uStack_128;
  int iStack_124;
  int iStack_11c;
  int iStack_118;
  int iStack_114;
  uint uStack_110;
  int iStack_10c;
  uint uStack_108;
  int *piStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  code *pcStack_f4;
  code *pcStack_e0;
  double *pdStack_d4;
  double dStack_d0;
  int iStack_c8;
  int iStack_c4;
  undefined4 uStack_c0;
  int iStack_bc;
  undefined4 uStack_b8;
  undefined4 uStack_b4;
  uint uStack_b0;
  uint uStack_ac;
  int iStack_a8;
  int iStack_9c;
  undefined *puStack_98;
  
  if (param_1 != (undefined *)0x0) {
    if (*(int *)(param_1 + 0x336c) == -0x54535255) {
      if (*(int *)(param_1 + 0x3350) == 0) {
        iVar2 = *(int *)(param_1 + 0x2a0);
      }
      else {
        (*(code *)PTR_LogMagickEvent_003a91e0)
                  (0x8000,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,
                   PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ff4,0x5b2);
        iVar2 = *(int *)(param_1 + 0x2a0);
      }
      if (iVar2 == 1) {
        return 1;
      }
      if (*(int *)(param_1 + 4) - 3U < 0x1f) {
        if (-1 < (int)((0x403c0001U >> (*(int *)(param_1 + 4) - 3U & 0x1f)) << 0x1f)) {
          return 0;
        }
        uVar3 = (*(code *)PTR_GetImageProperty_003a93fc)
                          (param_1,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x58ac,param_2
                          );
        iVar2 = (*(code *)PTR_IsStringFalse_003a921c)(uVar3);
        if ((iVar2 == 0) &&
           (iVar2 = (*(code *)PTR_IdentifyImageMonochrome_003a96bc)(param_1,param_2), iVar2 != 0)) {
          *(undefined4 *)(param_1 + 4) = 3;
          iVar2 = FUN_00058a34(param_1,param_2);
          if (iVar2 != 0) {
            *(undefined4 *)(param_1 + 0x2a0) = 1;
            return 1;
          }
        }
      }
      return 0;
    }
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970,0x5b0,
               PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);
    unaff_s0 = param_1;
  }
  uVar3 = 0x5af;
  puVar15 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5970;
  puVar14 = PTR_LAB_003a88e0 + 0xdd0;
  puVar32 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar14,puVar15,0x5af,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3fe0);
  if (puVar14 == (undefined *)0x0) {
    (**(code **)(puVar32 + 0x33a644))
              (*(int *)(puVar32 + 0x33991c) + 0xdd0,*(int *)(puVar32 + 0x339924) + -0x5970,0x5e5,
               *(int *)(puVar32 + 0x339924) + -0x4010);
  }
  else {
    unaff_s0 = puVar14;
    if (*(int *)(puVar14 + 0x336c) == -0x54535255) {
      if (*(int *)(puVar14 + 0x3350) == 0) {
        puVar4 = *(undefined **)(puVar14 + 4);
      }
      else {
        (**(code **)(puVar32 + 0x33a21c))
                  (0x8000,*(int *)(puVar32 + 0x339924) + -0x5970,
                   *(int *)(puVar32 + 0x339924) + -0x402c,0x5e8);
        puVar4 = *(undefined **)(puVar14 + 4);
      }
      if (puVar4 == puVar15) {
                    /* WARNING: Could not recover jumptable at 0x0006f164. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,puVar15,uVar3);
        return iVar2;
      }
      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x5890);
      (**(code **)(puVar32 + 0x33a864))(puVar14,*(int *)(puVar32 + 0x339924) + -0x588c);
      if (puVar15 == (undefined *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0006f0f8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar2 = (**(code **)(puVar32 + 0x339d7c))(puVar14,0,uVar3);
        return iVar2;
      }
      if ((undefined *)0x1 < puVar15 + -0x17) {
        if (*(int *)(puVar14 + 4) - 0x17U < 2) {
          iVar2 = 1;
        }
        else {
          iVar2 = FUN_0006b9c8(puVar14,uVar3);
          if (iVar2 == 0) {
            return 0;
          }
        }
        iVar5 = FUN_0006d178(puVar14,puVar15,uVar3);
        if (iVar5 == 0) {
          return 0;
        }
        return iVar2;
      }
      iVar2 = FUN_0006b9c8(puVar14,uVar3);
      return iVar2;
    }
  }
  uVar3 = 0x5e6;
  pcVar33 = *(code **)(puVar32 + 0x33a644);
  iVar20 = *(int *)(puVar32 + 0x339924) + -0x4010;
  iVar5 = *(int *)(puVar32 + 0x339924) + -0x5970;
  iVar2 = *(int *)(puVar32 + 0x339924) + -0x3784;
  (*pcVar33)();
  pcStack_e0 = pcVar33 + 0x3416c0;
  dVar35 = *(double *)(iVar5 + 0x248);
  dVar44 = *(double *)(iVar2 + 0x248);
  piVar30 = *(int **)(pcVar33 + 0x33a040);
  iStack_9c = *piVar30;
  if (dVar35 < dVar44) {
    iVar9 = *(int *)(pcVar33 + 0x3396f8);
    if (dVar44 <= *(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8)) goto LAB_0006f270;
LAB_0006f470:
    dVar44 = dVar44 * dVar44;
  }
  else {
    iVar9 = *(int *)(pcVar33 + 0x3396f8);
    if (*(double *)(*(int *)(pcVar33 + 0x3396f8) + -0x5ac8) < dVar35) {
      if (dVar35 < dVar44) goto LAB_0006f470;
      dVar44 = dVar35 * dVar35;
    }
    else {
LAB_0006f270:
      dVar44 = *(double *)(iVar9 + -0x5ad0);
    }
  }
  uVar18 = *(uint *)(iVar2 + 0x1c);
  if (*(uint *)(iVar2 + 0x1c) <= *(uint *)(iVar5 + 0x1c)) {
    uVar18 = *(uint *)(iVar5 + 0x1c);
  }
  uVar6 = *(uint *)(iVar2 + 0x18);
  if (*(uint *)(iVar2 + 0x18) <= *(uint *)(iVar5 + 0x18)) {
    uVar6 = *(uint *)(iVar5 + 0x18);
  }
  puStack_98 = unaff_s0;
  uVar7 = (**(code **)(pcVar33 + 0x33a564))(iVar2,iVar20);
  uVar8 = (**(code **)(pcStack_e0 + -0x715c))(iVar5,iVar20);
  iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2);
  if (((iVar9 == 4) || (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)) &&
     ((iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 4 ||
      (iVar9 = (**(code **)(pcStack_e0 + -0x73fc))(iVar2), iVar9 == 3)))) {
    (**(code **)(pcStack_e0 + -0x7774))(7);
    uVar28 = uVar18;
    if ((int)uVar18 < 0) {
      uVar28 = uVar18 + 0x3f;
    }
    pdVar16 = (double *)((int)uVar28 >> 6);
    if (extraout_v1 < (int)pdVar16) {
      pdStack_d4 = pdVar16;
      (**(code **)(pcStack_e0 + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      pdVar16 = pdStack_d4;
    }
    else {
      bVar1 = (int)uVar18 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_d4 = pdVar16;
      (**(code **)(pcStack_e0 + -0x7774))(7);
      pdVar16 = pdStack_d4;
      if (extraout_v1_01 < (int)pdStack_d4) {
        pcVar33 = *(code **)(pcStack_e0 + -0x7774);
        goto LAB_0006f4b4;
      }
    }
    else {
      pdVar16 = (double *)0x1;
    }
  }
  else {
    uVar48 = (**(code **)(pcStack_e0 + -0x7774))(7);
    if ((int)((ulonglong)uVar48 >> 0x20) == 0) {
      pcVar33 = *(code **)(pcStack_e0 + -0x7774);
      if ((uint)uVar48 < 2) {
        uVar48 = (*pcVar33)(7);
        if ((int)((ulonglong)uVar48 >> 0x20) != 0) goto LAB_0006f310;
        pcVar33 = *(code **)(pcStack_e0 + -0x7774);
        if ((uint)uVar48 < 2) {
          pdVar16 = (double *)0x1;
          goto LAB_0006f328;
        }
      }
    }
    else {
LAB_0006f310:
      pcVar33 = *(code **)(pcStack_e0 + -0x7774);
    }
    uVar48 = (*pcVar33)(7);
    if (((int)((ulonglong)uVar48 >> 0x20) == 0) &&
       (pcVar33 = *(code **)(pcStack_e0 + -0x7774), (uint)uVar48 < 2)) {
LAB_0006f4b4:
      (*pcVar33)(7);
      pdVar16 = extraout_v1_00;
    }
    else {
      pdVar16 = (double *)0x2;
    }
  }
LAB_0006f328:
  uVar21 = 0;
  pdVar17 = &dStack_d0;
  iStack_a8 = 1;
  dStack_d0 = dVar44;
  iStack_c8 = iVar2;
  iStack_c4 = iVar5;
  uStack_c0 = uVar3;
  iStack_bc = iVar20;
  uStack_b8 = uVar7;
  uStack_b4 = uVar8;
  uStack_b0 = uVar6;
  uStack_ac = uVar18;
  (**(code **)(pcStack_e0 + -0x7718))(*(int *)(pcStack_e0 + -0x7f78) + 0x1c00);
  iVar2 = iStack_a8;
  (**(code **)(pcStack_e0 + -0x79bc))(uVar8);
  (**(code **)(pcStack_e0 + -0x79bc))(uVar7);
  if (iStack_9c == *piVar30) {
    return iVar2;
  }
  pcVar33 = *(code **)(pcStack_e0 + -0x784c);
  pcVar34 = FUN_0006f518;
  iVar9 = iStack_9c;
  (*pcVar33)();
  piVar29 = *(int **)(pcVar33 + 0x339d18);
  uVar28 = *(uint *)(iVar9 + 0x1c);
  if (*(uint *)(iVar9 + 0x1c) <= *(uint *)((int)pdVar17 + 0x1c)) {
    uVar28 = *(uint *)((int)pdVar17 + 0x1c);
  }
  uVar27 = *(uint *)(iVar9 + 0x18);
  if (*(uint *)(iVar9 + 0x18) <= *(uint *)(pdVar17 + 3)) {
    uVar27 = *(uint *)(pdVar17 + 3);
  }
  iStack_118 = iVar2;
  iStack_11c = *piVar29;
  iStack_114 = iVar5;
  uStack_110 = uVar18;
  iStack_10c = iVar20;
  uStack_108 = uVar6;
  piStack_104 = piVar30;
  uStack_100 = uVar3;
  uStack_fc = uVar7;
  uStack_f8 = uVar8;
  pcStack_f4 = pcVar34;
  uVar3 = (**(code **)(pcVar33 + 0x33a23c))();
  uVar7 = (**(code **)(pcVar33 + 0x33a23c))(pdVar17,uVar21);
  iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9);
  if (((iVar2 == 4) || (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 3)) &&
     ((iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), iVar2 == 4 ||
      (iVar2 = (**(code **)(pcVar33 + 0x339f9c))(iVar9), 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_150;
  iStack_124 = 1;
  uStack_14c = 0;
  iStack_150 = 0;
  uStack_130 = 0;
  iStack_148 = iVar9;
  pdStack_144 = pdVar17;
  pdStack_140 = pdVar16;
  uStack_13c = uVar21;
  uStack_138 = uVar3;
  uStack_134 = uVar7;
  uStack_12c = uVar27;
  uStack_128 = uVar28;
  (**(code **)(pcVar33 + 0x339c80))(*(int *)(pcVar33 + 0x339420) + 0x2498,piVar30,iVar2);
  iVar5 = iStack_124;
  uVar8 = uStack_14c;
  iVar2 = iStack_150;
  dVar35 = (double)CONCAT44(iStack_150,uStack_14c);
  (**(code **)(pcVar33 + 0x3399dc))(uVar7);
  (**(code **)(pcVar33 + 0x3399dc))(uVar3);
  if (0.0 <= dVar35) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438);
    dStack_158 = dVar35;
  }
  else {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1a78);
    dStack_158 = -(double)CONCAT44(iVar2,uVar8);
  }
  if (*(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8) <= dStack_158) {
    dVar44 = *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x1438) / dVar35;
  }
  else {
    dVar44 = dVar44 / *(double *)(*(int *)(pcVar33 + 0x3393c8) + 0x13f8);
  }
  pdVar17 = pdVar16;
  do {
    pdVar10 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar44;
    pdVar17 = pdVar10;
  } while (pdVar16 + 0x41 != pdVar10);
  pdVar17 = (double *)0x0;
  if (0 < *(int *)(iVar9 + 0x2c0)) {
    piVar22 = *(int **)(iVar9 + 0x2d0);
    piVar30 = piVar22 + *(int *)(iVar9 + 0x2c0) * 3;
    piVar12 = piVar22;
    do {
      if ((piVar22[*piVar12 * 3 + 1] & 2U) != 0) {
        pdVar17 = (double *)((int)pdVar17 + 1);
      }
      piVar12 = piVar12 + 3;
    } while (piVar12 != 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_11c == iVar2) {
    return iVar5;
  }
  pcVar33 = *(code **)(pcVar33 + 0x339b4c);
  iVar2 = iStack_11c;
  (*pcVar33)();
  uVar18 = *(uint *)(iVar2 + 0x1c);
  if (*(uint *)(iVar2 + 0x1c) <= (uint)piVar30[7]) {
    uVar18 = piVar30[7];
  }
  uVar6 = *(uint *)(iVar2 + 0x18);
  if (*(uint *)(iVar2 + 0x18) <= (uint)piVar30[6]) {
    uVar6 = piVar30[6];
  }
  uVar3 = (**(code **)(pcVar33 + 0x339e44))();
  uVar7 = (**(code **)(pcVar33 + 0x339e44))(piVar30,piVar22);
  if ((int)uVar18 < 1) {
    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);
    iVar5 = 1;
    dVar46 = 0.0;
    dVar35 = dVar46;
    dVar44 = dVar46;
  }
  else {
    iVar5 = *(int *)(pcVar33 + 0x338fd0);
    iVar20 = *(int *)(pcVar33 + 0x338fd0);
    iStack_1e0 = *(int *)(pcVar33 + 0x338fd0);
    dVar47 = *(double *)(iVar5 + 0x1438);
    uVar28 = 0;
    uVar45 = (ulonglong)*(uint *)(iVar20 + 0x3708);
    dVar46 = 0.0;
    pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    dVar35 = dVar46;
    dVar44 = dVar46;
    dVar37 = dVar47;
    do {
      pfVar11 = (float *)(*pcVar34)(uVar3,0,uVar28,uVar6,1,piVar22);
      iVar9 = (**(code **)(pcVar33 + 0x339d4c))(uVar7,0,uVar28,uVar6,1,piVar22);
      if ((pfVar11 == (float *)0x0) || (iVar9 == 0)) {
        iVar5 = 0;
        goto LAB_0006fc88;
      }
      if (0 < (int)uVar6) {
        uVar27 = 0;
        piVar29 = *(int **)(iVar2 + 0x2d0);
        dVar40 = *(double *)(iStack_1e0 + 0x1440);
        iVar31 = piVar29[0x13];
        dVar43 = *(double *)(iVar5 + 0x1438);
        fVar39 = *(float *)(iVar20 + 0x3708);
        do {
          while (((iVar31 != 0 && (pfVar11[piVar29[0x14]] <= fVar39)) ||
                 ((iVar23 = piVar30[0xb4], *(int *)(iVar23 + 0x4c) != 0 &&
                  (*(float *)(iVar9 + *(int *)(iVar23 + 0x50) * 4) <= (float)uVar45))))) {
            uVar27 = uVar27 + 1;
            pfVar11 = pfVar11 + *(int *)(iVar2 + 0x2c0);
            iVar9 = iVar9 + piVar30[0xb0] * 4;
            if (uVar27 == uVar6) goto LAB_0006fc4c;
          }
          dVar36 = dVar43;
          if (piVar29[0xd] != 0) {
            dVar36 = (double)pfVar11[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;
            piVar12 = piVar29;
            pfVar19 = pfVar11;
            do {
              iVar24 = *piVar12;
              iVar13 = iVar23 + iVar24 * 0xc;
              if (((piVar29[iVar24 * 3 + 1] != 0) && (uVar25 = *(uint *)(iVar13 + 4), uVar25 != 0))
                 && ((uVar25 & 2) != 0)) {
                dVar41 = (double)*(float *)(iVar9 + *(int *)(iVar13 + 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;
              piVar12 = piVar12 + 3;
              pfVar19 = pfVar19 + 1;
            } while (pdVar16 != pdVar17 + iVar26);
          }
          uVar27 = uVar27 + 1;
          pfVar11 = pfVar11 + iVar26;
          iVar9 = iVar9 + piVar30[0xb0] * 4;
        } while (uVar27 != uVar6);
      }
LAB_0006fc4c:
      uVar28 = uVar28 + 1;
      pcVar34 = *(code **)(pcVar33 + 0x339d4c);
    } while (uVar28 != uVar18);
    iVar5 = 1;
  }
LAB_0006fc88:
  (**(code **)(pcVar33 + 0x3395e4))(uVar7);
  (**(code **)(pcVar33 + 0x3395e4))(uVar3);
  dVar37 = *(double *)(iStack_1e0 + 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 iVar5;
}

