
/* WARNING: Variable defined which should be unmapped: channel_distortion */
/* 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
GetMeanSquaredDistortion
          (Image *image,Image *reconstruct_image,double *distortion,ExceptionInfo *exception)

{
  bool bVar1;
  undefined *puVar2;
  MagickBooleanType MVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int iVar6;
  PixelChannel PVar7;
  uint uVar8;
  double *pdVar9;
  PixelChannelMap *pPVar10;
  int iVar11;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int extraout_v1_03;
  double *extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  ExceptionInfo *pEVar12;
  Image *pIVar13;
  int extraout_v1_07;
  int extraout_v1_08;
  int extraout_v1_09;
  int extraout_v1_10;
  PixelChannelMap *pPVar14;
  Image *reconstruct_image_00;
  int iVar15;
  PixelTrait PVar16;
  double *pdVar17;
  double *pdVar18;
  uint uVar19;
  PixelChannelMap *pPVar20;
  undefined4 uVar21;
  ExceptionInfo *exception_00;
  PixelTrait PVar22;
  uint uVar23;
  int *piVar24;
  int *piVar25;
  code *pcVar26;
  code *pcVar27;
  double dVar28;
  double dVar29;
  undefined8 uVar30;
  double channel_distortion [65];
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  uVar23 = image->rows;
  if (image->rows <= reconstruct_image->rows) {
    uVar23 = reconstruct_image->rows;
  }
  uVar8 = image->columns;
  if (image->columns <= reconstruct_image->columns) {
    uVar8 = reconstruct_image->columns;
  }
  channel_distortion[0x3c]._0_4_ = &_gp;
  iVar15 = *(int *)PTR___stack_chk_guard_003a9230;
  uVar4 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception);
  uVar5 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception);
  iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);
  if (iVar6 == 4) {
LAB_0006fff0:
    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);
    if (iVar6 != 4) {
      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);
      if (iVar6 != 3) goto LAB_0006fe24;
    }
    (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);
    uVar19 = uVar23;
    if ((int)uVar23 < 0) {
      uVar19 = uVar23 + 0x3f;
    }
    iVar6 = (int)uVar19 >> 6;
    if (extraout_v1 < iVar6) {
      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);
      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);
      bVar1 = extraout_v1_02 < 2;
      iVar6 = channel_distortion[0x3d]._0_4_;
    }
    else {
      bVar1 = (int)uVar23 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);
      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);
      iVar6 = channel_distortion[0x3d]._0_4_;
      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {
        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);
        goto LAB_000700d8;
      }
    }
    else {
      iVar6 = 1;
    }
  }
  else {
    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);
    if (iVar6 == 3) goto LAB_0006fff0;
LAB_0006fe24:
    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);
    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {
      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);
      if ((uint)uVar30 < 2) {
        uVar30 = (*pcVar26)(7);
        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;
        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);
        if ((uint)uVar30 < 2) {
          iVar6 = 1;
          goto LAB_0006fe50;
        }
      }
    }
    else {
LAB_0006fe38:
      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);
    }
    uVar30 = (*pcVar26)(7);
    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&
       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {
LAB_000700d8:
      (*pcVar26)(7);
      iVar6 = extraout_v1_00;
    }
    else {
      iVar6 = 2;
    }
  }
LAB_0006fe50:
  pPVar20 = (PixelChannelMap *)0x0;
  pPVar14 = (PixelChannelMap *)(channel_distortion + 0x3f);
  channel_distortion[0x3f]._4_4_ = 0;
  channel_distortion[0x3f]._0_4_ = 0;
  channel_distortion[0x40]._0_4_ = image;
  channel_distortion[0x40]._4_4_ = reconstruct_image;
  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))
            (*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6);
  channel_distortion[0x3d] =
       (double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_);
  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar5);
  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar4);
  if (0.0 <= channel_distortion[0x3d]) {
    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);
    channel_distortion[0x3e] = channel_distortion[0x3d];
  }
  else {
    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);
    channel_distortion[0x3e] = -channel_distortion[0x3d];
  }
  if (*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=
      channel_distortion[0x3e]) {
    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /
             channel_distortion[0x3d];
  }
  else {
    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);
  }
  pdVar17 = distortion;
  do {
    pdVar18 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar28;
    pdVar17 = pdVar18;
  } while (distortion + 0x41 != pdVar18);
  iVar6 = 0;
  if ((int)image->number_channels < 1) {
LAB_0007006c:
    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);
  }
  else {
    pPVar20 = image->channel_map;
    pPVar14 = pPVar20 + image->number_channels;
    pPVar10 = pPVar20;
    do {
      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {
        iVar6 = iVar6 + 1;
      }
      pPVar10 = pPVar10 + 1;
    } while (pPVar10 != pPVar14);
    if (iVar6 == 0) goto LAB_0007006c;
    dVar28 = (double)iVar6;
    if (iVar6 < 0) {
      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);
    }
  }
  iVar11 = *(int *)puVar2;
  distortion[0x40] = distortion[0x40] / dVar28;
  if (iVar15 == iVar11) {
    return MagickTrue;
  }
  pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x784c);
  pcVar27 = GetPeakAbsoluteDistortion;
  (*pcVar26)();
  channel_distortion[0x2e]._0_4_ = pcVar26 + 0x340774;
  channel_distortion[0x36]._4_4_ = 1;
  channel_distortion[0x36]._0_4_ = puVar2;
  piVar25 = *(int **)(pcVar26 + 0x3390f4);
  PVar22 = *(PixelTrait *)(iVar15 + 0x1c);
  if (*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits) {
    PVar22 = pPVar14[2].traits;
  }
  PVar7 = *(PixelChannel *)(iVar15 + 0x18);
  if (*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel) {
    PVar7 = pPVar14[2].channel;
  }
  channel_distortion[0x34]._4_4_ = *piVar25;
  channel_distortion[0x35]._0_4_ = image;
  channel_distortion[0x35]._4_4_ = distortion;
  channel_distortion[0x37]._0_4_ = uVar23;
  channel_distortion[0x37]._4_4_ = exception;
  channel_distortion[0x38]._0_4_ = uVar8;
  channel_distortion[0x38]._4_4_ = uVar4;
  channel_distortion[0x39]._0_4_ = uVar5;
  channel_distortion[0x39]._4_4_ = pcVar27;
  uVar4 = (**(code **)(pcVar26 + 0x339618))();
  uVar5 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20);
  iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);
  if (iVar11 == 4) {
LAB_000702f0:
    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);
    if (iVar11 != 4) {
      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);
      if (iVar11 != 3) goto LAB_0007021c;
    }
    (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);
    PVar16 = PVar22;
    if ((int)PVar22 < 0) {
      PVar16 = PVar22 + 0x3f;
    }
    pdVar17 = (double *)((int)PVar16 >> 6);
    if (extraout_v1_03 < (int)pdVar17) {
      channel_distortion[0x2f]._4_4_ = pdVar17;
      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);
      bVar1 = extraout_v1_06 < 2;
      pdVar17 = channel_distortion[0x2f]._4_4_;
    }
    else {
      bVar1 = (int)PVar22 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      channel_distortion[0x2f]._4_4_ = pdVar17;
      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);
      pdVar17 = channel_distortion[0x2f]._4_4_;
      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {
        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);
        goto LAB_000703a0;
      }
    }
    else {
      pdVar17 = (double *)0x1;
    }
  }
  else {
    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);
    if (iVar11 == 3) goto LAB_000702f0;
LAB_0007021c:
    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);
    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {
      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);
      if ((uint)uVar30 < 2) {
        uVar30 = (*pcVar26)(7);
        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;
        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);
        if ((uint)uVar30 < 2) {
          pdVar17 = (double *)0x1;
          goto LAB_00070248;
        }
      }
    }
    else {
LAB_00070230:
      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);
    }
    uVar30 = (*pcVar26)(7);
    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&
       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {
LAB_000703a0:
      (*pcVar26)(7);
      pdVar17 = extraout_v1_04;
    }
    else {
      pdVar17 = (double *)0x2;
    }
  }
LAB_00070248:
  uVar21 = 0;
  pdVar18 = channel_distortion + 0x30;
  channel_distortion[0x34]._0_4_ = MagickTrue;
  channel_distortion[0x30]._0_4_ = iVar15;
  channel_distortion[0x30]._4_4_ = pPVar14;
  channel_distortion[0x31]._0_4_ = iVar6;
  channel_distortion[0x31]._4_4_ = pPVar20;
  channel_distortion[0x32]._0_4_ = uVar4;
  channel_distortion[0x32]._4_4_ = uVar5;
  channel_distortion[0x33]._0_4_ = PVar7;
  channel_distortion[0x33]._4_4_ = PVar22;
  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))
            (*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0);
  MVar3 = channel_distortion[0x34]._0_4_;
  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar5);
  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar4);
  if (channel_distortion[0x34]._4_4_ == *piVar25) {
    return MVar3;
  }
  pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x784c);
  pcVar27 = GetFuzzDistortion;
  iVar15 = channel_distortion[0x34]._4_4_;
  (*pcVar26)();
  channel_distortion[0x1c]._0_4_ = pcVar26 + 0x3404ac;
  piVar24 = *(int **)(pcVar26 + 0x338e2c);
  uVar23 = *(uint *)(iVar15 + 0x1c);
  if (*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c)) {
    uVar23 = *(uint *)((int)pdVar18 + 0x1c);
  }
  uVar8 = *(uint *)(iVar15 + 0x18);
  if (*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3)) {
    uVar8 = *(uint *)(pdVar18 + 3);
  }
  channel_distortion[0x25]._4_4_ = (Image *)*piVar24;
  channel_distortion[0x26]._0_4_ = MVar3;
  channel_distortion[0x26]._4_4_ = pPVar14;
  channel_distortion[0x27]._0_4_ = PVar22;
  channel_distortion[0x27]._4_4_ = pPVar20;
  channel_distortion[0x28]._0_4_ = PVar7;
  channel_distortion[0x28]._4_4_ = piVar25;
  channel_distortion[0x29]._0_4_ = uVar4;
  channel_distortion[0x29]._4_4_ = uVar5;
  channel_distortion[0x2a]._0_4_ = iVar6;
  channel_distortion[0x2a]._4_4_ = pcVar27;
  uVar4 = (**(code **)(pcVar26 + 0x339350))();
  uVar5 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21);
  iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);
  if (iVar6 == 4) {
LAB_000706cc:
    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);
    if (iVar6 != 4) {
      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);
      if (iVar6 != 3) goto LAB_000704e4;
    }
    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);
    uVar19 = uVar23;
    if ((int)uVar23 < 0) {
      uVar19 = uVar23 + 0x3f;
    }
    iVar6 = (int)uVar19 >> 6;
    if (extraout_v1_07 < iVar6) {
      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);
      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);
      bVar1 = extraout_v1_10 < 2;
      iVar6 = channel_distortion[0x1d]._0_4_;
    }
    else {
      bVar1 = (int)uVar23 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);
      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);
      iVar6 = channel_distortion[0x1d]._0_4_;
      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {
        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);
        goto LAB_000707b4;
      }
    }
    else {
      iVar6 = 1;
    }
  }
  else {
    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);
    if (iVar6 == 3) goto LAB_000706cc;
LAB_000704e4:
    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);
    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {
      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);
      if ((uint)uVar30 < 2) {
        uVar30 = (*pcVar26)(7);
        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;
        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);
        if ((uint)uVar30 < 2) {
          iVar6 = 1;
          goto LAB_00070510;
        }
      }
    }
    else {
LAB_000704f8:
      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);
    }
    uVar30 = (*pcVar26)(7);
    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&
       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {
LAB_000707b4:
      (*pcVar26)(7);
      iVar6 = extraout_v1_08;
    }
    else {
      iVar6 = 2;
    }
  }
LAB_00070510:
  exception_00 = (ExceptionInfo *)0x0;
  reconstruct_image_00 = (Image *)(channel_distortion + 0x1f);
  channel_distortion[0x24]._4_4_ = MagickTrue;
  channel_distortion[0x1f]._4_4_ = 0;
  channel_distortion[0x1f]._0_4_ = 0;
  channel_distortion[0x23]._0_4_ = 0;
  channel_distortion[0x20]._0_4_ = iVar15;
  channel_distortion[0x20]._4_4_ = pdVar18;
  channel_distortion[0x21]._0_4_ = pdVar17;
  channel_distortion[0x21]._4_4_ = uVar21;
  channel_distortion[0x22]._0_4_ = uVar4;
  channel_distortion[0x22]._4_4_ = uVar5;
  channel_distortion[0x23]._4_4_ = uVar8;
  channel_distortion[0x24]._0_4_ = uVar23;
  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))
            (*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)
  ;
  MVar3 = channel_distortion[0x24]._4_4_;
  channel_distortion[0x1d] =
       (double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_);
  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar5);
  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar4);
  if (0.0 <= channel_distortion[0x1d]) {
    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);
    channel_distortion[0x1e] = channel_distortion[0x1d];
  }
  else {
    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);
    channel_distortion[0x1e] = -channel_distortion[0x1d];
  }
  if (*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=
      channel_distortion[0x1e]) {
    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /
             channel_distortion[0x1d];
  }
  else {
    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);
  }
  pdVar18 = pdVar17;
  do {
    pdVar9 = pdVar18 + 1;
    *pdVar18 = *pdVar18 * dVar28;
    pdVar18 = pdVar9;
  } while (pdVar17 + 0x41 != pdVar9);
  pdVar18 = (double *)0x0;
  if (0 < *(int *)(iVar15 + 0x2c0)) {
    exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);
    reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);
    pEVar12 = exception_00;
    do {
      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {
        pdVar18 = (double *)((int)pdVar18 + 1);
      }
      pEVar12 = (ExceptionInfo *)&pEVar12->description;
    } while ((Image *)pEVar12 != reconstruct_image_00);
    if (pdVar18 != (double *)0x0) {
      dVar28 = (double)(int)pdVar18;
      if ((int)pdVar18 < 0) {
        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);
      }
      goto LAB_00070664;
    }
  }
  dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);
LAB_00070664:
  dVar28 = pdVar17[0x40] / dVar28;
  pdVar17[0x40] = dVar28;
  dVar29 = SQRT(dVar28);
  if (dVar28 < 0.0) {
    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();
  }
  pIVar13 = (Image *)*piVar24;
  pdVar17[0x40] = dVar29;
  if (channel_distortion[0x25]._4_4_ == pIVar13) {
    return MVar3;
  }
  pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x784c);
  pcVar27 = GetRootMeanSquaredDistortion;
  pIVar13 = channel_distortion[0x25]._4_4_;
  (*pcVar26)();
  channel_distortion[0x14]._0_4_ = pcVar26 + 0x340084;
  dVar28 = 0.0;
  channel_distortion[0x16]._4_4_ = iVar15;
  channel_distortion[0x17]._0_4_ = pdVar17;
  channel_distortion[0x17]._4_4_ = pcVar27;
  channel_distortion[0x18] = dVar29;
  channel_distortion[0x15]._4_4_ =
       GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00);
  pdVar17 = pdVar18;
  pcVar26 = channel_distortion[0x14]._0_4_;
  do {
    dVar29 = SQRT(*pdVar17);
    if (*pdVar17 < dVar28) {
      (**(code **)(pcVar26 + -0x7430))();
      pcVar26 = channel_distortion[0x14]._0_4_;
    }
    pdVar9 = pdVar17 + 1;
    *pdVar17 = dVar29;
    pdVar17 = pdVar9;
  } while (pdVar9 != pdVar18 + 0x41);
  return channel_distortion[0x15]._4_4_;
}



undefined4 FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)

{
  bool bVar1;
  undefined *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  double *pdVar11;
  int iVar12;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int extraout_v1_03;
  double *extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int *piVar13;
  int extraout_v1_07;
  int extraout_v1_08;
  int extraout_v1_09;
  int extraout_v1_10;
  int *piVar14;
  uint uVar15;
  double *pdVar16;
  double *pdVar17;
  uint uVar18;
  int *piVar19;
  undefined4 uVar20;
  int *piVar21;
  int *piVar22;
  undefined *puVar23;
  code *pcVar24;
  code *pcVar25;
  double dVar26;
  double dVar27;
  undefined8 uVar28;
  double dStack_168;
  undefined4 uStack_160;
  undefined4 uStack_15c;
  int iStack_158;
  int *piStack_154;
  double *pdStack_150;
  undefined4 uStack_14c;
  undefined4 uStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  uint uStack_13c;
  uint uStack_138;
  undefined4 uStack_134;
  int iStack_12c;
  undefined4 uStack_128;
  int *piStack_124;
  uint uStack_120;
  int *piStack_11c;
  uint uStack_118;
  int *piStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  int iStack_108;
  code *pcStack_104;
  undefined *puStack_e8;
  double *pdStack_dc;
  int iStack_d8;
  int *piStack_d4;
  int iStack_d0;
  int *piStack_cc;
  undefined4 uStack_c8;
  undefined4 uStack_c4;
  uint uStack_c0;
  uint uStack_bc;
  undefined4 uStack_b8;
  int iStack_b4;
  int iStack_b0;
  double *pdStack_ac;
  undefined *puStack_a8;
  undefined4 uStack_a4;
  uint uStack_a0;
  undefined4 uStack_9c;
  uint uStack_98;
  undefined4 uStack_94;
  undefined4 uStack_90;
  code *pcStack_8c;
  double local_68;
  int local_60;
  undefined4 uStack_5c;
  int local_58;
  int local_54;
  double *local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  uint local_3c;
  uint local_38;
  undefined4 local_34;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  uVar15 = *(uint *)(param_1 + 0x1c);
  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {
    uVar15 = *(uint *)(param_2 + 0x1c);
  }
  uVar10 = *(uint *)(param_1 + 0x18);
  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {
    uVar10 = *(uint *)(param_2 + 0x18);
  }
  local_2c = *(int *)PTR___stack_chk_guard_003a9230;
  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);
  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);
  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);
  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)
      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||
            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {
    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
    uVar18 = uVar15;
    if ((int)uVar15 < 0) {
      uVar18 = uVar15 + 0x3f;
    }
    iVar7 = (int)uVar18 >> 6;
    if (extraout_v1 < iVar7) {
      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      bVar1 = extraout_v1_02 < 2;
    }
    else {
      bVar1 = (int)uVar15 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      if (extraout_v1_01 < iVar7) goto LAB_000700d8;
    }
    else {
      iVar7 = 1;
    }
  }
  else {
    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {
      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {
        iVar7 = 1;
        goto LAB_0006fe50;
      }
    }
    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {
LAB_000700d8:
      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      iVar7 = extraout_v1_00;
    }
    else {
      iVar7 = 2;
    }
  }
LAB_0006fe50:
  piVar19 = (int *)0x0;
  piVar13 = &local_60;
  local_34 = 1;
  uStack_5c = 0;
  local_60 = 0;
  local_40 = 0;
  local_58 = param_1;
  local_54 = param_2;
  local_50 = param_3;
  local_4c = param_4;
  local_48 = uVar5;
  local_44 = uVar6;
  local_3c = uVar10;
  local_38 = uVar15;
  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);
  uVar20 = local_34;
  uVar3 = uStack_5c;
  iVar7 = local_60;
  dVar26 = (double)CONCAT44(local_60,uStack_5c);
  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);
  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);
  if (0.0 <= dVar26) {
    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
    local_68 = dVar26;
  }
  else {
    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);
    local_68 = -(double)CONCAT44(iVar7,uVar3);
  }
  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {
    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;
  }
  else {
    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);
  }
  pdVar16 = param_3;
  do {
    pdVar17 = pdVar16 + 1;
    *pdVar16 = *pdVar16 * dVar27;
    pdVar16 = pdVar17;
  } while (param_3 + 0x41 != pdVar17);
  iVar7 = 0;
  if (*(int *)(param_1 + 0x2c0) < 1) {
LAB_0007006c:
    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
  }
  else {
    piVar19 = *(int **)(param_1 + 0x2d0);
    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;
    piVar22 = piVar19;
    do {
      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {
        iVar7 = iVar7 + 1;
      }
      piVar22 = piVar22 + 3;
    } while (piVar22 != piVar13);
    if (iVar7 == 0) goto LAB_0007006c;
    dVar26 = (double)iVar7;
    if (iVar7 < 0) {
      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
    }
  }
  iVar12 = *(int *)puVar2;
  param_3[0x40] = param_3[0x40] / dVar26;
  if (local_2c == iVar12) {
    return uVar20;
  }
  pcVar24 = FUN_0007013c;
  iVar12 = local_2c;
  puVar23 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  puStack_e8 = puVar23 + 0x340774;
  uStack_a4 = uVar20;
  puStack_a8 = puVar2;
  piVar22 = *(int **)(puVar23 + 0x3390f4);
  uVar18 = *(uint *)(iVar12 + 0x1c);
  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {
    uVar18 = piVar13[7];
  }
  uVar8 = *(uint *)(iVar12 + 0x18);
  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {
    uVar8 = piVar13[6];
  }
  iStack_b4 = *piVar22;
  iStack_b0 = param_1;
  pdStack_ac = param_3;
  uStack_a0 = uVar15;
  uStack_9c = param_4;
  uStack_98 = uVar10;
  uStack_94 = uVar5;
  uStack_90 = uVar6;
  pcStack_8c = pcVar24;
  uVar5 = (**(code **)(puVar23 + 0x339618))();
  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);
  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);
  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&
     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||
      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {
    (**(code **)(puStack_e8 + -0x7774))(7);
    uVar15 = uVar18;
    if ((int)uVar18 < 0) {
      uVar15 = uVar18 + 0x3f;
    }
    pdVar16 = (double *)((int)uVar15 >> 6);
    if (extraout_v1_03 < (int)pdVar16) {
      pdStack_dc = pdVar16;
      (**(code **)(puStack_e8 + -0x7774))(7);
      bVar1 = extraout_v1_06 < 2;
      pdVar16 = pdStack_dc;
    }
    else {
      bVar1 = (int)uVar18 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_dc = pdVar16;
      (**(code **)(puStack_e8 + -0x7774))(7);
      pdVar16 = pdStack_dc;
      if (extraout_v1_05 < (int)pdStack_dc) {
        pcVar24 = *(code **)(puStack_e8 + -0x7774);
        goto LAB_000703a0;
      }
    }
    else {
      pdVar16 = (double *)0x1;
    }
  }
  else {
    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);
    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {
      pcVar24 = *(code **)(puStack_e8 + -0x7774);
      if ((uint)uVar28 < 2) {
        uVar28 = (*pcVar24)(7);
        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;
        pcVar24 = *(code **)(puStack_e8 + -0x7774);
        if ((uint)uVar28 < 2) {
          pdVar16 = (double *)0x1;
          goto LAB_00070248;
        }
      }
    }
    else {
LAB_00070230:
      pcVar24 = *(code **)(puStack_e8 + -0x7774);
    }
    uVar28 = (*pcVar24)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&
       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {
LAB_000703a0:
      (*pcVar24)(7);
      pdVar16 = extraout_v1_04;
    }
    else {
      pdVar16 = (double *)0x2;
    }
  }
LAB_00070248:
  uVar20 = 0;
  piVar14 = &iStack_d8;
  uStack_b8 = 1;
  iStack_d8 = iVar12;
  piStack_d4 = piVar13;
  iStack_d0 = iVar7;
  piStack_cc = piVar19;
  uStack_c8 = uVar5;
  uStack_c4 = uVar6;
  uStack_c0 = uVar8;
  uStack_bc = uVar18;
  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);
  uVar3 = uStack_b8;
  (**(code **)(puStack_e8 + -0x79bc))(uVar6);
  (**(code **)(puStack_e8 + -0x79bc))(uVar5);
  if (iStack_b4 == *piVar22) {
    return uVar3;
  }
  pcVar24 = *(code **)(puStack_e8 + -0x784c);
  pcVar25 = FUN_00070404;
  iVar12 = iStack_b4;
  (*pcVar24)();
  piVar21 = *(int **)(pcVar24 + 0x338e2c);
  uVar15 = *(uint *)(iVar12 + 0x1c);
  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {
    uVar15 = piVar14[7];
  }
  uVar10 = *(uint *)(iVar12 + 0x18);
  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {
    uVar10 = piVar14[6];
  }
  iStack_12c = *piVar21;
  uStack_128 = uVar3;
  piStack_124 = piVar13;
  uStack_120 = uVar18;
  piStack_11c = piVar19;
  uStack_118 = uVar8;
  piStack_114 = piVar22;
  uStack_110 = uVar5;
  uStack_10c = uVar6;
  iStack_108 = iVar7;
  pcStack_104 = pcVar25;
  uVar5 = (**(code **)(pcVar24 + 0x339350))();
  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);
  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);
  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&
     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||
      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {
    (**(code **)(pcVar24 + 0x338d38))(7);
    uVar18 = uVar15;
    if ((int)uVar15 < 0) {
      uVar18 = uVar15 + 0x3f;
    }
    iVar7 = (int)uVar18 >> 6;
    if (extraout_v1_07 < iVar7) {
      (**(code **)(pcVar24 + 0x338d38))(7);
      bVar1 = extraout_v1_10 < 2;
    }
    else {
      bVar1 = (int)uVar15 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar24 + 0x338d38))(7);
      if (extraout_v1_09 < iVar7) {
        pcVar25 = *(code **)(pcVar24 + 0x338d38);
        goto LAB_000707b4;
      }
    }
    else {
      iVar7 = 1;
    }
  }
  else {
    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);
    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {
      pcVar25 = *(code **)(pcVar24 + 0x338d38);
      if ((uint)uVar28 < 2) {
        uVar28 = (*pcVar25)(7);
        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;
        pcVar25 = *(code **)(pcVar24 + 0x338d38);
        if ((uint)uVar28 < 2) {
          iVar7 = 1;
          goto LAB_00070510;
        }
      }
    }
    else {
LAB_000704f8:
      pcVar25 = *(code **)(pcVar24 + 0x338d38);
    }
    uVar28 = (*pcVar25)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&
       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {
LAB_000707b4:
      (*pcVar25)(7);
      iVar7 = extraout_v1_08;
    }
    else {
      iVar7 = 2;
    }
  }
LAB_00070510:
  uStack_134 = 1;
  uStack_15c = 0;
  uStack_160 = 0;
  uStack_140 = 0;
  iStack_158 = iVar12;
  piStack_154 = piVar14;
  pdStack_150 = pdVar16;
  uStack_14c = uVar20;
  uStack_148 = uVar5;
  uStack_144 = uVar6;
  uStack_13c = uVar10;
  uStack_138 = uVar15;
  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);
  uVar4 = uStack_134;
  uVar20 = uStack_15c;
  uVar3 = uStack_160;
  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);
  (**(code **)(pcVar24 + 0x338af0))(uVar6);
  (**(code **)(pcVar24 + 0x338af0))(uVar5);
  if (0.0 <= dVar26) {
    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);
    dStack_168 = dVar26;
  }
  else {
    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);
    dStack_168 = -(double)CONCAT44(uVar3,uVar20);
  }
  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {
    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;
  }
  else {
    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);
  }
  pdVar17 = pdVar16;
  do {
    pdVar11 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar27;
    pdVar17 = pdVar11;
  } while (pdVar16 + 0x41 != pdVar11);
  pdVar17 = (double *)0x0;
  if (0 < *(int *)(iVar12 + 0x2c0)) {
    piVar19 = *(int **)(iVar12 + 0x2d0);
    piVar13 = piVar19;
    do {
      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {
        pdVar17 = (double *)((int)pdVar17 + 1);
      }
      piVar13 = piVar13 + 3;
    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);
    if (pdVar17 != (double *)0x0) {
      dVar26 = (double)(int)pdVar17;
      if ((int)pdVar17 < 0) {
        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);
      }
      goto LAB_00070664;
    }
  }
  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);
LAB_00070664:
  dVar26 = pdVar16[0x40] / dVar26;
  pdVar16[0x40] = dVar26;
  dVar27 = SQRT(dVar26);
  if (dVar26 < 0.0) {
    (**(code **)(pcVar24 + 0x33907c))();
  }
  iVar7 = *piVar21;
  pdVar16[0x40] = dVar27;
  if (iStack_12c != iVar7) {
    pcVar24 = *(code **)(pcVar24 + 0x338c60);
    (*pcVar24)();
    dVar26 = 0.0;
    uVar5 = FUN_0006fd44();
    pdVar16 = pdVar17;
    do {
      dVar27 = SQRT(*pdVar16);
      if (*pdVar16 < dVar26) {
        (**(code **)(pcVar24 + 0x338c54))();
      }
      pdVar11 = pdVar16 + 1;
      *pdVar16 = dVar27;
      pdVar16 = pdVar11;
    } while (pdVar11 != pdVar17 + 0x41);
    return uVar5;
  }
  return uVar4;
}


lui gp,0x34
addiu gp,gp,0xb6c
addu gp,gp,t9
addiu sp,sp,-0x88
lw t0,0x1c(a0)
lw v0,0x18(a0)
lw t9,-0x715c(gp)
sw s3,0x6c(sp)
or s3,a1,zero
sw s5,0x74(sp)
or s5,a3,zero
sw s2,0x68(sp)
sw s6,0x78(sp)
sw s4,0x70(sp)
sw s1,0x64(sp)
or s1,a2,zero
lw a3,0x1c(a1)
or a1,s5,zero
lw v1,0x18(s3)
lw s2,-0x7680(gp)
sltu s4,a3,t0
sw ra,0x84(sp)
sltu s6,v1,v0
movz t0,a3,s4
movz v0,v1,s6
sw gp,0x10(sp)
or s4,t0,zero
sw s8,0x80(sp)
sw s7,0x7c(sp)
or s6,v0,zero
sw s0,0x60(sp)
or s0,a0,zero
lw a2,0x0(s2)
sw a2,0x5c(sp)
jalr t9
_nop
or a0,s3,zero
lw gp,0x10(sp)
or a1,s5,zero
lw t9,-0x715c(gp)
jalr t9
_or s7,v0,zero
or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x73fc(gp)
jalr t9
_or s8,v0,zero
li v1,0x4
beq v0,v1,0x0006fff0
_lw gp,0x10(sp)
lw t9,-0x73fc(gp)
jalr t9
_or a0,s0,zero
li v1,0x3
beq v0,v1,0x0006fff0
_lw gp,0x10(sp)
lw t9,-0x7774(gp)
jalr t9
_li a0,0x7
beq v0,zero,0x0007009c
_lw gp,0x10(sp)
lw t9,-0x7774(gp)
jalr t9
_li a0,0x7
beq v0,zero,0x000700cc
_lw gp,0x10(sp)
li a2,0x2
lw a0,-0x7f78(gp)
li v0,0x1
lw t9,-0x7718(gp)
or a3,zero,zero
addiu a1,sp,0x28
sw s3,0x34(sp)
addiu a0,a0,0x2948
sw v0,0x54(sp)
sw s4,0x50(sp)
sw s6,0x4c(sp)
sw s8,0x44(sp)
sw s7,0x40(sp)
sw s5,0x3c(sp)
sw s1,0x38(sp)
sw s0,0x30(sp)
sw zero,0x2c(sp)
sw zero,0x28(sp)
jalr t9
_sw zero,0x48(sp)
or a0,s8,zero
ldc1 f0,0x28(sp)
lw gp,0x10(sp)
lw s3,0x54(sp)
lw t9,-0x79bc(gp)
jalr t9
_sdc1 f0,0x18(sp)
lw gp,0x10(sp)
lw t9,-0x79bc(gp)
jalr t9
_or a0,s7,zero
mtc1 zero,f0
ldc1 f2,0x18(sp)
mthc1 zero,f0
c.lt.D f2,f0
bc1t 0x00070078
_lw gp,0x10(sp)
lw v0,-0x7fd0(gp)
ldc1 f0,0x18(sp)
ldc1 f2,0x1438(v0)
sdc1 f0,0x20(sp)
lw v0,-0x7fd0(gp)
ldc1 f4,0x20(sp)
ldc1 f0,0x13f8(v0)
c.le.D f0,f4
bc1f 0x1,0x00070064
_lw v0,-0x7fd0(gp)
ldc1 f0,0x18(sp)
ldc1 f2,0x1438(v0)
div.D f2,f2,f0
addiu v1,s1,0x208
or v0,s1,zero
ldc1 f0,0x0(v0)
addiu v0,v0,0x8
mul.D f0,f0,f2
bne v1,v0,0x0006ff1c
_sdc1 f0,-0x8(v0)
lw v0,0x2c0(s0)
blez v0,0x0007006c
_or a2,zero,zero
sll a1,v0,0x1
lw a3,0x2d0(s0)
addu a1,a1,v0
or v1,a3,zero
sll a1,a1,0x2
addu a1,a1,a3
lw a0,0x0(v1)
sll v0,a0,0x1
addu v0,v0,a0
sll v0,v0,0x2
addu v0,a3,v0
lw v0,0x4(v0)
andi v0,v0,0x2
beq v0,zero,0x0006ff7c
_nop
addiu a2,a2,0x1
addiu v1,v1,0xc
bne v1,a1,0x0006ff54
_nop
beq a2,zero,0x0007006c
_mtc1 a2,f0
bgez a2,0x0006ffa4
_cvt.d.W f2,f0
lw v0,-0x7fd0(gp)
ldc1 f0,0x1418(v0)
add.D f2,f2,f0
ldc1 f0,0x200(s1)
or v0,s3,zero
lw a0,0x5c(sp)
lw v1,0x0(s2)
div.D f0,f0,f2
bne a0,v1,0x00070130
_sdc1 f0,0x200(s1)
lw ra,0x84(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
lw t9,-0x73fc(gp)
jalr t9
_or a0,s0,zero
li v1,0x4
beq v0,v1,0x00070020
_lw gp,0x10(sp)
lw t9,-0x73fc(gp)
jalr t9
_or a0,s0,zero
li v1,0x3
bne v0,v1,0x0006fe24
_lw gp,0x10(sp)
lw t9,-0x7774(gp)
jalr t9
_li a0,0x7
or a2,s4,zero
bgez s4,0x0007003c
_lw gp,0x10(sp)
addiu a2,s4,0x3f
sra a2,a2,0x6
slt v0,v1,a2
bne v0,zero,0x00070110
_lw t9,-0x7774(gp)
slti v0,s4,0x80
xori v0,v0,0x1
bne v0,zero,0x000700ec
_lw t9,-0x7774(gp)
b 0x0006fe50
_li a2,0x1
b 0x0006ff14
_div.D f2,f2,f0
lw v0,-0x7fd0(gp)
b 0x0006ffa4
_ldc1 f2,0x1438(v0)
lw v0,-0x7fd0(gp)
lw v1,0x18(sp)
ldc1 f2,0x1a78(v0)
lui v0,0x8000
xor v0,v1,v0
sw v0,0x20(sp)
lw v0,0x1c(sp)
b 0x0006fef0
_sw v0,0x24(sp)
sltiu v1,v1,0x2
beq v1,zero,0x0006fe3c
_lw t9,-0x7774(gp)
jalr t9
_li a0,0x7
bne v0,zero,0x0006fe38
_lw gp,0x10(sp)
sltiu v1,v1,0x2
beq v1,zero,0x0006fe3c
_lw t9,-0x7774(gp)
b 0x0006fe50
_li a2,0x1
sltiu v1,v1,0x2
beq v1,zero,0x0006fe4c
_lw t9,-0x7774(gp)
jalr t9
_li a0,0x7
lw gp,0x10(sp)
b 0x0006fe50
_or a2,v1,zero
li a0,0x7
jalr t9
_sw a2,0x18(sp)
lw a2,0x18(sp)
slt v0,v1,a2
beq v0,zero,0x0006fe50
_lw gp,0x10(sp)
b 0x000700d8
_lw t9,-0x7774(gp)
li a0,0x7
jalr t9
_sw a2,0x18(sp)
slti v0,v1,0x2
lw gp,0x10(sp)
xori v0,v0,0x1
b 0x00070054
_lw a2,0x18(sp)
lw t9,-0x784c(gp)
jalr t9
_nop
(translation_unit "undefined4 FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined4 FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,int param_2,double *param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "double *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "double *pdVar11;" primitive_type (pointer_declarator "*pdVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "double *extraout_v1_04;" primitive_type (pointer_declarator "*extraout_v1_04" * identifier) ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int extraout_v1_07;" primitive_type identifier ;) (declaration "int extraout_v1_08;" primitive_type identifier ;) (declaration "int extraout_v1_09;" primitive_type identifier ;) (declaration "int extraout_v1_10;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "double dStack_168;" primitive_type identifier ;) (declaration "undefined4 uStack_160;" type_identifier identifier ;) (declaration "undefined4 uStack_15c;" type_identifier identifier ;) (declaration "int iStack_158;" primitive_type identifier ;) (declaration "int *piStack_154;" primitive_type (pointer_declarator "*piStack_154" * identifier) ;) (declaration "double *pdStack_150;" primitive_type (pointer_declarator "*pdStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "undefined4 uStack_148;" type_identifier identifier ;) (declaration "undefined4 uStack_144;" type_identifier identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "undefined4 uStack_128;" type_identifier identifier ;) (declaration "int *piStack_124;" primitive_type (pointer_declarator "*piStack_124" * identifier) ;) (declaration "uint uStack_120;" type_identifier identifier ;) (declaration "int *piStack_11c;" primitive_type (pointer_declarator "*piStack_11c" * identifier) ;) (declaration "uint uStack_118;" type_identifier identifier ;) (declaration "int *piStack_114;" primitive_type (pointer_declarator "*piStack_114" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "int iStack_108;" primitive_type identifier ;) (declaration "code *pcStack_104;" type_identifier (pointer_declarator "*pcStack_104" * identifier) ;) (declaration "undefined *puStack_e8;" type_identifier (pointer_declarator "*puStack_e8" * identifier) ;) (declaration "double *pdStack_dc;" primitive_type (pointer_declarator "*pdStack_dc" * identifier) ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "undefined4 uStack_c4;" type_identifier identifier ;) (declaration "uint uStack_c0;" type_identifier identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "int iStack_b0;" primitive_type identifier ;) (declaration "double *pdStack_ac;" primitive_type (pointer_declarator "*pdStack_ac" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "undefined4 uStack_a4;" type_identifier identifier ;) (declaration "uint uStack_a0;" type_identifier identifier ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "uint uStack_98;" type_identifier identifier ;) (declaration "undefined4 uStack_94;" type_identifier identifier ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "double *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c))" ( (binary_expression "*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(param_2 + 0x1c)" * (cast_expression "(uint *)(param_2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }" { (expression_statement "uVar15 = *(uint *)(param_2 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(param_2 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x1c)" * (cast_expression "(uint *)(param_2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar10 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x18)" identifier = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18))" ( (binary_expression "*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }" { (expression_statement "uVar10 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar10 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);" (assignment_expression "uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4)" identifier = (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" ( (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" * (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_4)" ( identifier , identifier )))) ;) (expression_statement "uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);" (assignment_expression "uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4)" identifier = (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" ( (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" * (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_4)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3))))" ( (binary_expression "((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))" (parenthesized_expression "((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      )" ( (binary_expression "(iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (parenthesized_expression "(iVar7 == 4)" ( (binary_expression "iVar7 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" ( (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))" ( (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3))" ( (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (binary_expression "iVar7 == 4" identifier == number_literal) || (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" ( (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = uVar15 + 0x3f;\n    }" { (expression_statement "uVar18 = uVar15 + 0x3f;" (assignment_expression "uVar18 = uVar15 + 0x3f" identifier = (binary_expression "uVar15 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar7 = (int)uVar18 >> 6;" (assignment_expression "iVar7 = (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 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < iVar7)" ( (binary_expression "extraout_v1 < iVar7" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (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)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar15 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar15 < 0x80;" (assignment_expression "bVar1 = (int)uVar15 < 0x80" identifier = (binary_expression "(int)uVar15 < 0x80" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 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 *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_01 < iVar7) goto LAB_000700d8;" if (parenthesized_expression "(extraout_v1_01 < iVar7)" ( (binary_expression "extraout_v1_01 < iVar7" identifier < identifier) )) (goto_statement "goto LAB_000700d8;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar7 = 1;\n    }" else (compound_statement "{\n      iVar7 = 1;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" else (compound_statement "{\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" { (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" identifier = (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }" { (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" identifier = (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006fe50;" goto statement_identifier ;) })) })) (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" identifier = (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }" { (labeled_statement "LAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" statement_identifier : (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar7 = extraout_v1_00;" (assignment_expression "iVar7 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      iVar7 = 2;\n    }" else (compound_statement "{\n      iVar7 = 2;\n    }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006fe50:\n  piVar19 = (int *)0x0;" statement_identifier : (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piVar13 = &local_60;" (assignment_expression "piVar13 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (expression_statement "local_34 = 1;" (assignment_expression "local_34 = 1" identifier = number_literal) ;) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" identifier = identifier) ;) (expression_statement "local_54 = param_2;" (assignment_expression "local_54 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (expression_statement "local_4c = param_4;" (assignment_expression "local_4c = param_4" identifier = identifier) ;) (expression_statement "local_48 = uVar5;" (assignment_expression "local_48 = uVar5" identifier = identifier) ;) (expression_statement "local_44 = uVar6;" (assignment_expression "local_44 = uVar6" identifier = identifier) ;) (expression_statement "local_3c = uVar10;" (assignment_expression "local_3c = uVar10" identifier = identifier) ;) (expression_statement "local_38 = uVar15;" (assignment_expression "local_38 = uVar15" identifier = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" ( (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" * (cast_expression "(code *)PTR_GOMP_parallel_003a9198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7)" ( (binary_expression "PTR_LAB_003a8938 + 0x2948" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "uVar20 = local_34;" (assignment_expression "uVar20 = local_34" identifier = identifier) ;) (expression_statement "uVar3 = uStack_5c;" (assignment_expression "uVar3 = uStack_5c" identifier = identifier) ;) (expression_statement "iVar7 = local_60;" (assignment_expression "iVar7 = local_60" identifier = identifier) ;) (expression_statement "dVar26 = (double)CONCAT44(local_60,uStack_5c);" (assignment_expression "dVar26 = (double)CONCAT44(local_60,uStack_5c)" identifier = (cast_expression "(double)CONCAT44(local_60,uStack_5c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(local_60,uStack_5c)" identifier (argument_list "(local_60,uStack_5c)" ( identifier , identifier ))))) ;) (expression_statement "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);" (call_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003a8ef4" * (cast_expression "(code *)PTR_DestroyCacheView_003a8ef4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);" (call_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003a8ef4" * (cast_expression "(code *)PTR_DestroyCacheView_003a8ef4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" if (parenthesized_expression "(0.0 <= dVar26)" ( (binary_expression "0.0 <= dVar26" number_literal <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "local_68 = dVar26;" (assignment_expression "local_68 = dVar26" identifier = identifier) ;) }) (else_clause "else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" else (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a78" identifier + number_literal) ))))) ;) (expression_statement "local_68 = -(double)CONCAT44(iVar7,uVar3);" (assignment_expression "local_68 = -(double)CONCAT44(iVar7,uVar3)" identifier = (unary_expression "-(double)CONCAT44(iVar7,uVar3)" - (cast_expression "(double)CONCAT44(iVar7,uVar3)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar7,uVar3)" identifier (argument_list "(iVar7,uVar3)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68)" ( (binary_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68" (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26" identifier = (binary_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26" (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" else (compound_statement "{\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" { (expression_statement "dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (binary_expression "dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier / (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) )))))) ;) }))) (expression_statement "pdVar16 = param_3;" (assignment_expression "pdVar16 = param_3" identifier = identifier) ;) (do_statement "do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);" do (compound_statement "{\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  }" { (expression_statement "pdVar17 = pdVar16 + 1;" (assignment_expression "pdVar17 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar16 = *pdVar16 * dVar27;" (assignment_expression "*pdVar16 = *pdVar16 * dVar27" (pointer_expression "*pdVar16" * identifier) = (binary_expression "*pdVar16 * dVar27" (pointer_expression "*pdVar16" * identifier) * identifier)) ;) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) }) while (parenthesized_expression "(param_3 + 0x41 != pdVar17)" ( (binary_expression "param_3 + 0x41 != pdVar17" (binary_expression "param_3 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c0) < 1)" ( (binary_expression "*(int *)(param_1 + 0x2c0) < 1" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }" { (labeled_statement "LAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" statement_identifier : (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" else (compound_statement "{\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" { (expression_statement "piVar19 = *(int **)(param_1 + 0x2d0);" (assignment_expression "piVar19 = *(int **)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int **)(param_1 + 0x2d0)" * (cast_expression "(int **)(param_1 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;" (assignment_expression "piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3" identifier = (binary_expression "piVar19 + *(int *)(param_1 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 3" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar22 = piVar19;" (assignment_expression "piVar22 = piVar19" identifier = identifier) ;) (do_statement "do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);" do (compound_statement "{\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    }" { (if_statement "if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }" if (parenthesized_expression "((piVar19[*piVar22 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar19[*piVar22 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar19[*piVar22 * 3 + 1] & 2U)" ( (binary_expression "piVar19[*piVar22 * 3 + 1] & 2U" (subscript_expression "piVar19[*piVar22 * 3 + 1]" identifier [ (binary_expression "*piVar22 * 3 + 1" (binary_expression "*piVar22 * 3" (pointer_expression "*piVar22" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar7 = iVar7 + 1;\n      }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "piVar22 = piVar22 + 3;" (assignment_expression "piVar22 = piVar22 + 3" identifier = (binary_expression "piVar22 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar22 != piVar13)" ( (binary_expression "piVar22 != piVar13" identifier != identifier) )) ;) (if_statement "if (iVar7 == 0) goto LAB_0007006c;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007006c;" goto statement_identifier ;)) (expression_statement "dVar26 = (double)iVar7;" (assignment_expression "dVar26 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }" { (expression_statement "dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) }))) (expression_statement "iVar12 = *(int *)puVar2;" (assignment_expression "iVar12 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "param_3[0x40] = param_3[0x40] / dVar26;" (assignment_expression "param_3[0x40] = param_3[0x40] / dVar26" (subscript_expression "param_3[0x40]" identifier [ number_literal ]) = (binary_expression "param_3[0x40] / dVar26" (subscript_expression "param_3[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (local_2c == iVar12) {\n    return uVar20;\n  }" if (parenthesized_expression "(local_2c == iVar12)" ( (binary_expression "local_2c == iVar12" identifier == identifier) )) (compound_statement "{\n    return uVar20;\n  }" { (return_statement "return uVar20;" return identifier ;) })) (expression_statement "pcVar24 = FUN_0007013c;" (assignment_expression "pcVar24 = FUN_0007013c" identifier = identifier) ;) (expression_statement "iVar12 = local_2c;" (assignment_expression "iVar12 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar23 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_e8 = puVar23 + 0x340774;" (assignment_expression "puStack_e8 = puVar23 + 0x340774" identifier = (binary_expression "puVar23 + 0x340774" identifier + number_literal)) ;) (expression_statement "uStack_a4 = uVar20;" (assignment_expression "uStack_a4 = uVar20" identifier = identifier) ;) (expression_statement "puStack_a8 = puVar2;" (assignment_expression "puStack_a8 = puVar2" identifier = identifier) ;) (expression_statement "piVar22 = *(int **)(puVar23 + 0x3390f4);" (assignment_expression "piVar22 = *(int **)(puVar23 + 0x3390f4)" identifier = (pointer_expression "*(int **)(puVar23 + 0x3390f4)" * (cast_expression "(int **)(puVar23 + 0x3390f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x3390f4)" ( (binary_expression "puVar23 + 0x3390f4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar12 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar12 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7])" ( (binary_expression "*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]" (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar13[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar13[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar18 = piVar13[7];\n  }" { (expression_statement "uVar18 = piVar13[7];" (assignment_expression "uVar18 = piVar13[7]" identifier = (subscript_expression "piVar13[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar8 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar8 = *(uint *)(iVar12 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6])" ( (binary_expression "*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar13[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar13[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar8 = piVar13[6];\n  }" { (expression_statement "uVar8 = piVar13[6];" (assignment_expression "uVar8 = piVar13[6]" identifier = (subscript_expression "piVar13[6]" identifier [ number_literal ])) ;) })) (expression_statement "iStack_b4 = *piVar22;" (assignment_expression "iStack_b4 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "iStack_b0 = param_1;" (assignment_expression "iStack_b0 = param_1" identifier = identifier) ;) (expression_statement "pdStack_ac = param_3;" (assignment_expression "pdStack_ac = param_3" identifier = identifier) ;) (expression_statement "uStack_a0 = uVar15;" (assignment_expression "uStack_a0 = uVar15" identifier = identifier) ;) (expression_statement "uStack_9c = param_4;" (assignment_expression "uStack_9c = param_4" identifier = identifier) ;) (expression_statement "uStack_98 = uVar10;" (assignment_expression "uStack_98 = uVar10" identifier = identifier) ;) (expression_statement "uStack_94 = uVar5;" (assignment_expression "uStack_94 = uVar5" identifier = identifier) ;) (expression_statement "uStack_90 = uVar6;" (assignment_expression "uStack_90 = uVar6" identifier = identifier) ;) (expression_statement "pcStack_8c = pcVar24;" (assignment_expression "pcStack_8c = pcVar24" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(puVar23 + 0x339618))();" (assignment_expression "uVar5 = (**(code **)(puVar23 + 0x339618))()" identifier = (call_expression "(**(code **)(puVar23 + 0x339618))()" (parenthesized_expression "(**(code **)(puVar23 + 0x339618))" ( (pointer_expression "**(code **)(puVar23 + 0x339618)" * (pointer_expression "*(code **)(puVar23 + 0x339618)" * (cast_expression "(code **)(puVar23 + 0x339618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x339618)" ( (binary_expression "puVar23 + 0x339618" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);" (assignment_expression "uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x715c))" ( (pointer_expression "**(code **)(puStack_e8 + -0x715c)" * (pointer_expression "*(code **)(puStack_e8 + -0x715c)" * (cast_expression "(code **)(puStack_e8 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x715c)" ( (binary_expression "puStack_e8 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(piVar13,piVar19)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))))" ( (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))" ( (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" ( (binary_expression "iVar9 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))" ( (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))" ( (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (binary_expression "iVar9 == 4" identifier == number_literal) || (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar15 = uVar18;" (assignment_expression "uVar15 = uVar18" identifier = identifier) ;) (if_statement "if ((int)uVar18 < 0) {\n      uVar15 = 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      uVar15 = uVar18 + 0x3f;\n    }" { (expression_statement "uVar15 = uVar18 + 0x3f;" (assignment_expression "uVar15 = uVar18 + 0x3f" identifier = (binary_expression "uVar18 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar16 = (double *)((int)uVar15 >> 6);" (assignment_expression "pdVar16 = (double *)((int)uVar15 >> 6)" identifier = (cast_expression "(double *)((int)uVar15 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)uVar15 >> 6)" ( (binary_expression "(int)uVar15 >> 6" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < (int)pdVar16)" ( (binary_expression "extraout_v1_03 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }" { (expression_statement "pdStack_dc = pdVar16;" (assignment_expression "pdStack_dc = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" 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)) ;) (expression_statement "pdVar16 = pdStack_dc;" (assignment_expression "pdVar16 = pdStack_dc" 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_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\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_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }" { (expression_statement "pdStack_dc = pdVar16;" (assignment_expression "pdStack_dc = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar16 = pdStack_dc;" (assignment_expression "pdVar16 = pdStack_dc" identifier = identifier) ;) (if_statement "if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }" if (parenthesized_expression "(extraout_v1_05 < (int)pdStack_dc)" ( (binary_expression "extraout_v1_05 < (int)pdStack_dc" identifier < (cast_expression "(int)pdStack_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }" { (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000703a0;" 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    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" { (expression_statement "uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);" (assignment_expression "uVar28 = (**(code **)(puStack_e8 + -0x7774))(7)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }" { (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" { (expression_statement "uVar28 = (*pcVar24)(7);" (assignment_expression "uVar28 = (*pcVar24)(7)" identifier = (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_00070230;" goto statement_identifier ;)) (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\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_00070248;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" else (compound_statement "{\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" { (labeled_statement "LAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);" statement_identifier : (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar28 = (*pcVar24)(7);" (assignment_expression "uVar28 = (*pcVar24)(7)" identifier = (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)" ( (comma_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) , (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }" { (labeled_statement "LAB_000703a0:\n      (*pcVar24)(7);" statement_identifier : (expression_statement "(*pcVar24)(7);" (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "pdVar16 = extraout_v1_04;" (assignment_expression "pdVar16 = extraout_v1_04" 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_00070248:\n  uVar20 = 0;" statement_identifier : (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;)) (expression_statement "piVar14 = &iStack_d8;" (assignment_expression "piVar14 = &iStack_d8" identifier = (pointer_expression "&iStack_d8" & identifier)) ;) (expression_statement "uStack_b8 = 1;" (assignment_expression "uStack_b8 = 1" identifier = number_literal) ;) (expression_statement "iStack_d8 = iVar12;" (assignment_expression "iStack_d8 = iVar12" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar13;" (assignment_expression "piStack_d4 = piVar13" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar7;" (assignment_expression "iStack_d0 = iVar7" identifier = identifier) ;) (expression_statement "piStack_cc = piVar19;" (assignment_expression "piStack_cc = piVar19" identifier = identifier) ;) (expression_statement "uStack_c8 = uVar5;" (assignment_expression "uStack_c8 = uVar5" identifier = identifier) ;) (expression_statement "uStack_c4 = uVar6;" (assignment_expression "uStack_c4 = uVar6" identifier = identifier) ;) (expression_statement "uStack_c0 = uVar8;" (assignment_expression "uStack_c0 = uVar8" identifier = identifier) ;) (expression_statement "uStack_bc = uVar18;" (assignment_expression "uStack_bc = uVar18" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);" (call_expression "(**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7718))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7718)" * (pointer_expression "*(code **)(puStack_e8 + -0x7718)" * (cast_expression "(code **)(puStack_e8 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7718)" ( (binary_expression "puStack_e8 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0)" ( (binary_expression "*(int *)(puStack_e8 + -0x7f78) + 0x2dc0" (pointer_expression "*(int *)(puStack_e8 + -0x7f78)" * (cast_expression "(int *)(puStack_e8 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_e8 + -0x7f78)" ( (binary_expression "puStack_e8 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_e8 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x79bc)" * (pointer_expression "*(code **)(puStack_e8 + -0x79bc)" * (cast_expression "(code **)(puStack_e8 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x79bc)" ( (binary_expression "puStack_e8 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_e8 + -0x79bc))(uVar5);" (call_expression "(**(code **)(puStack_e8 + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x79bc)" * (pointer_expression "*(code **)(puStack_e8 + -0x79bc)" * (cast_expression "(code **)(puStack_e8 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x79bc)" ( (binary_expression "puStack_e8 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }" if (parenthesized_expression "(iStack_b4 == *piVar22)" ( (binary_expression "iStack_b4 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x784c);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x784c)" * (cast_expression "(code **)(puStack_e8 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x784c)" ( (binary_expression "puStack_e8 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = FUN_00070404;" (assignment_expression "pcVar25 = FUN_00070404" identifier = identifier) ;) (expression_statement "iVar12 = iStack_b4;" (assignment_expression "iVar12 = iStack_b4" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = *(int **)(pcVar24 + 0x338e2c);" (assignment_expression "piVar21 = *(int **)(pcVar24 + 0x338e2c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x338e2c)" * (cast_expression "(int **)(pcVar24 + 0x338e2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338e2c)" ( (binary_expression "pcVar24 + 0x338e2c" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(iVar12 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar12 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7])" ( (binary_expression "*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]" (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar14[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar14[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar15 = piVar14[7];\n  }" { (expression_statement "uVar15 = piVar14[7];" (assignment_expression "uVar15 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar10 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar10 = *(uint *)(iVar12 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6])" ( (binary_expression "*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar14[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar14[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar10 = piVar14[6];\n  }" { (expression_statement "uVar10 = piVar14[6];" (assignment_expression "uVar10 = piVar14[6]" identifier = (subscript_expression "piVar14[6]" identifier [ number_literal ])) ;) })) (expression_statement "iStack_12c = *piVar21;" (assignment_expression "iStack_12c = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "uStack_128 = uVar3;" (assignment_expression "uStack_128 = uVar3" identifier = identifier) ;) (expression_statement "piStack_124 = piVar13;" (assignment_expression "piStack_124 = piVar13" identifier = identifier) ;) (expression_statement "uStack_120 = uVar18;" (assignment_expression "uStack_120 = uVar18" identifier = identifier) ;) (expression_statement "piStack_11c = piVar19;" (assignment_expression "piStack_11c = piVar19" identifier = identifier) ;) (expression_statement "uStack_118 = uVar8;" (assignment_expression "uStack_118 = uVar8" identifier = identifier) ;) (expression_statement "piStack_114 = piVar22;" (assignment_expression "piStack_114 = piVar22" identifier = identifier) ;) (expression_statement "uStack_110 = uVar5;" (assignment_expression "uStack_110 = uVar5" identifier = identifier) ;) (expression_statement "uStack_10c = uVar6;" (assignment_expression "uStack_10c = uVar6" identifier = identifier) ;) (expression_statement "iStack_108 = iVar7;" (assignment_expression "iStack_108 = iVar7" identifier = identifier) ;) (expression_statement "pcStack_104 = pcVar25;" (assignment_expression "pcStack_104 = pcVar25" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(pcVar24 + 0x339350))();" (assignment_expression "uVar5 = (**(code **)(pcVar24 + 0x339350))()" identifier = (call_expression "(**(code **)(pcVar24 + 0x339350))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x339350))" ( (pointer_expression "**(code **)(pcVar24 + 0x339350)" * (pointer_expression "*(code **)(pcVar24 + 0x339350)" * (cast_expression "(code **)(pcVar24 + 0x339350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x339350)" ( (binary_expression "pcVar24 + 0x339350" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);" (assignment_expression "uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20)" identifier = (call_expression "(**(code **)(pcVar24 + 0x339350))(piVar14,uVar20)" (parenthesized_expression "(**(code **)(pcVar24 + 0x339350))" ( (pointer_expression "**(code **)(pcVar24 + 0x339350)" * (pointer_expression "*(code **)(pcVar24 + 0x339350)" * (cast_expression "(code **)(pcVar24 + 0x339350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x339350)" ( (binary_expression "pcVar24 + 0x339350" identifier + number_literal) ))))) )) (argument_list "(piVar14,uVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))))" ( (binary_expression "((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))" (parenthesized_expression "((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))" ( (binary_expression "(iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (parenthesized_expression "(iVar7 == 4)" ( (binary_expression "iVar7 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" ( (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))" ( (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))" ( (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (binary_expression "iVar7 == 4" identifier == number_literal) || (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" ( (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = uVar15 + 0x3f;\n    }" { (expression_statement "uVar18 = uVar15 + 0x3f;" (assignment_expression "uVar18 = uVar15 + 0x3f" identifier = (binary_expression "uVar15 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar7 = (int)uVar18 >> 6;" (assignment_expression "iVar7 = (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_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_07 < iVar7)" ( (binary_expression "extraout_v1_07 < iVar7" identifier < identifier) )) (compound_statement "{\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }" { (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_10 < 2;" (assignment_expression "bVar1 = extraout_v1_10 < 2" identifier = (binary_expression "extraout_v1_10 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar15 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar15 < 0x80;" (assignment_expression "bVar1 = (int)uVar15 < 0x80" identifier = (binary_expression "(int)uVar15 < 0x80" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 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 **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }" { (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }" if (parenthesized_expression "(extraout_v1_09 < iVar7)" ( (binary_expression "extraout_v1_09 < iVar7" identifier < identifier) )) (compound_statement "{\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000707b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar7 = 1;\n    }" else (compound_statement "{\n      iVar7 = 1;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" else (compound_statement "{\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" { (expression_statement "uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);" (assignment_expression "uVar28 = (**(code **)(pcVar24 + 0x338d38))(7)" identifier = (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }" { (expression_statement "uVar28 = (*pcVar25)(7);" (assignment_expression "uVar28 = (*pcVar25)(7)" identifier = (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000704f8;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar7 = 1;\n          goto LAB_00070510;\n        }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00070510;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" else (compound_statement "{\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" { (labeled_statement "LAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);" statement_identifier : (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar28 = (*pcVar25)(7);" (assignment_expression "uVar28 = (*pcVar25)(7)" identifier = (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)" ( (comma_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) , (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }" { (labeled_statement "LAB_000707b4:\n      (*pcVar25)(7);" statement_identifier : (expression_statement "(*pcVar25)(7);" (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar7 = extraout_v1_08;" (assignment_expression "iVar7 = extraout_v1_08" identifier = identifier) ;) }) (else_clause "else {\n      iVar7 = 2;\n    }" else (compound_statement "{\n      iVar7 = 2;\n    }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00070510:\n  uStack_134 = 1;" statement_identifier : (expression_statement "uStack_134 = 1;" (assignment_expression "uStack_134 = 1" identifier = number_literal) ;)) (expression_statement "uStack_15c = 0;" (assignment_expression "uStack_15c = 0" identifier = number_literal) ;) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" identifier = number_literal) ;) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "iStack_158 = iVar12;" (assignment_expression "iStack_158 = iVar12" identifier = identifier) ;) (expression_statement "piStack_154 = piVar14;" (assignment_expression "piStack_154 = piVar14" identifier = identifier) ;) (expression_statement "pdStack_150 = pdVar16;" (assignment_expression "pdStack_150 = pdVar16" identifier = identifier) ;) (expression_statement "uStack_14c = uVar20;" (assignment_expression "uStack_14c = uVar20" identifier = identifier) ;) (expression_statement "uStack_148 = uVar5;" (assignment_expression "uStack_148 = uVar5" identifier = identifier) ;) (expression_statement "uStack_144 = uVar6;" (assignment_expression "uStack_144 = uVar6" identifier = identifier) ;) (expression_statement "uStack_13c = uVar10;" (assignment_expression "uStack_13c = uVar10" identifier = identifier) ;) (expression_statement "uStack_138 = uVar15;" (assignment_expression "uStack_138 = uVar15" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);" (call_expression "(**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d94))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d94)" * (pointer_expression "*(code **)(pcVar24 + 0x338d94)" * (cast_expression "(code **)(pcVar24 + 0x338d94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d94)" ( (binary_expression "pcVar24 + 0x338d94" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0)" ( (binary_expression "*(int *)(pcVar24 + 0x338534) + 0x2020" (pointer_expression "*(int *)(pcVar24 + 0x338534)" * (cast_expression "(int *)(pcVar24 + 0x338534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x338534)" ( (binary_expression "pcVar24 + 0x338534" identifier + number_literal) )))) + number_literal) , (pointer_expression "&uStack_160" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar4 = uStack_134;" (assignment_expression "uVar4 = uStack_134" identifier = identifier) ;) (expression_statement "uVar20 = uStack_15c;" (assignment_expression "uVar20 = uStack_15c" identifier = identifier) ;) (expression_statement "uVar3 = uStack_160;" (assignment_expression "uVar3 = uStack_160" identifier = identifier) ;) (expression_statement "dVar26 = (double)CONCAT44(uStack_160,uStack_15c);" (assignment_expression "dVar26 = (double)CONCAT44(uStack_160,uStack_15c)" identifier = (cast_expression "(double)CONCAT44(uStack_160,uStack_15c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_160,uStack_15c)" identifier (argument_list "(uStack_160,uStack_15c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar24 + 0x338af0))(uVar6);" (call_expression "(**(code **)(pcVar24 + 0x338af0))(uVar6)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338af0))" ( (pointer_expression "**(code **)(pcVar24 + 0x338af0)" * (pointer_expression "*(code **)(pcVar24 + 0x338af0)" * (cast_expression "(code **)(pcVar24 + 0x338af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338af0)" ( (binary_expression "pcVar24 + 0x338af0" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x338af0))(uVar5);" (call_expression "(**(code **)(pcVar24 + 0x338af0))(uVar5)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338af0))" ( (pointer_expression "**(code **)(pcVar24 + 0x338af0)" * (pointer_expression "*(code **)(pcVar24 + 0x338af0)" * (cast_expression "(code **)(pcVar24 + 0x338af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338af0)" ( (binary_expression "pcVar24 + 0x338af0" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" if (parenthesized_expression "(0.0 <= dVar26)" ( (binary_expression "0.0 <= dVar26" number_literal <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_168 = dVar26;" (assignment_expression "dStack_168 = dVar26" identifier = identifier) ;) }) (else_clause "else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" else (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" { (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1a78" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_168 = -(double)CONCAT44(uVar3,uVar20);" (assignment_expression "dStack_168 = -(double)CONCAT44(uVar3,uVar20)" identifier = (unary_expression "-(double)CONCAT44(uVar3,uVar20)" - (cast_expression "(double)CONCAT44(uVar3,uVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar3,uVar20)" identifier (argument_list "(uVar3,uVar20)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168)" ( (binary_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168" (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x13f8" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26" identifier = (binary_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26" (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" else (compound_statement "{\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" { (expression_statement "dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);" (assignment_expression "dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" identifier = (binary_expression "dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x13f8" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar17 = pdVar16;" (assignment_expression "pdVar17 = pdVar16" identifier = identifier) ;) (do_statement "do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);" do (compound_statement "{\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  }" { (expression_statement "pdVar11 = pdVar17 + 1;" (assignment_expression "pdVar11 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar17 = *pdVar17 * dVar27;" (assignment_expression "*pdVar17 = *pdVar17 * dVar27" (pointer_expression "*pdVar17" * identifier) = (binary_expression "*pdVar17 * dVar27" (pointer_expression "*pdVar17" * identifier) * identifier)) ;) (expression_statement "pdVar17 = pdVar11;" (assignment_expression "pdVar17 = pdVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar16 + 0x41 != pdVar11)" ( (binary_expression "pdVar16 + 0x41 != pdVar11" (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 *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar12 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar12 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" { (expression_statement "piVar19 = *(int **)(iVar12 + 0x2d0);" (assignment_expression "piVar19 = *(int **)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar12 + 0x2d0)" * (cast_expression "(int **)(iVar12 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = piVar19;" (assignment_expression "piVar13 = piVar19" identifier = identifier) ;) (do_statement "do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);" do (compound_statement "{\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    }" { (if_statement "if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" if (parenthesized_expression "((piVar19[*piVar13 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar19[*piVar13 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar19[*piVar13 * 3 + 1] & 2U)" ( (binary_expression "piVar19[*piVar13 * 3 + 1] & 2U" (subscript_expression "piVar19[*piVar13 * 3 + 1]" identifier [ (binary_expression "*piVar13 * 3 + 1" (binary_expression "*piVar13 * 3" (pointer_expression "*piVar13" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        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 "piVar13 = piVar13 + 3;" (assignment_expression "piVar13 = piVar13 + 3" identifier = (binary_expression "piVar13 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3)" ( (binary_expression "piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3" identifier != (binary_expression "piVar19 + *(int *)(iVar12 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar12 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) )))) * number_literal))) )) ;) (if_statement "if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\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      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }" { (expression_statement "dVar26 = (double)(int)pdVar17;" (assignment_expression "dVar26 = (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        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 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        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }" { (expression_statement "dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);" (assignment_expression "dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" identifier = (binary_expression "dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1418" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_00070664;" goto statement_identifier ;) })) })) (expression_statement "dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);" (assignment_expression "dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;" statement_identifier : (expression_statement "dVar26 = pdVar16[0x40] / dVar26;" (assignment_expression "dVar26 = pdVar16[0x40] / dVar26" identifier = (binary_expression "pdVar16[0x40] / dVar26" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) / identifier)) ;)) (expression_statement "pdVar16[0x40] = dVar26;" (assignment_expression "pdVar16[0x40] = dVar26" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar27 = SQRT(dVar26);" (assignment_expression "dVar27 = SQRT(dVar26)" identifier = (call_expression "SQRT(dVar26)" identifier (argument_list "(dVar26)" ( identifier )))) ;) (if_statement "if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }" if (parenthesized_expression "(dVar26 < 0.0)" ( (binary_expression "dVar26 < 0.0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x33907c))();\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x33907c))();" (call_expression "(**(code **)(pcVar24 + 0x33907c))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x33907c))" ( (pointer_expression "**(code **)(pcVar24 + 0x33907c)" * (pointer_expression "*(code **)(pcVar24 + 0x33907c)" * (cast_expression "(code **)(pcVar24 + 0x33907c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x33907c)" ( (binary_expression "pcVar24 + 0x33907c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = *piVar21;" (assignment_expression "iVar7 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pdVar16[0x40] = dVar27;" (assignment_expression "pdVar16[0x40] = dVar27" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_12c != iVar7)" ( (binary_expression "iStack_12c != iVar7" identifier != identifier) )) (compound_statement "{\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }" { (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x338c60);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x338c60)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338c60)" * (cast_expression "(code **)(pcVar24 + 0x338c60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338c60)" ( (binary_expression "pcVar24 + 0x338c60" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "dVar26 = 0.0;" (assignment_expression "dVar26 = 0.0" identifier = number_literal) ;) (expression_statement "uVar5 = FUN_0006fd44();" (assignment_expression "uVar5 = FUN_0006fd44()" identifier = (call_expression "FUN_0006fd44()" identifier (argument_list "()" ( )))) ;) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (do_statement "do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);" do (compound_statement "{\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    }" { (expression_statement "dVar27 = SQRT(*pdVar16);" (assignment_expression "dVar27 = SQRT(*pdVar16)" identifier = (call_expression "SQRT(*pdVar16)" identifier (argument_list "(*pdVar16)" ( (pointer_expression "*pdVar16" * identifier) )))) ;) (if_statement "if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }" if (parenthesized_expression "(*pdVar16 < dVar26)" ( (binary_expression "*pdVar16 < dVar26" (pointer_expression "*pdVar16" * identifier) < identifier) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x338c54))();\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x338c54))();" (call_expression "(**(code **)(pcVar24 + 0x338c54))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x338c54))" ( (pointer_expression "**(code **)(pcVar24 + 0x338c54)" * (pointer_expression "*(code **)(pcVar24 + 0x338c54)" * (cast_expression "(code **)(pcVar24 + 0x338c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338c54)" ( (binary_expression "pcVar24 + 0x338c54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pdVar11 = pdVar16 + 1;" (assignment_expression "pdVar11 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar16 = dVar27;" (assignment_expression "*pdVar16 = dVar27" (pointer_expression "*pdVar16" * identifier) = identifier) ;) (expression_statement "pdVar16 = pdVar11;" (assignment_expression "pdVar16 = pdVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar11 != pdVar17 + 0x41)" ( (binary_expression "pdVar11 != pdVar17 + 0x41" identifier != (binary_expression "pdVar17 + 0x41" identifier + number_literal)) )) ;) (return_statement "return uVar5;" return identifier ;) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Variable defined which should be unmapped: channel_distortion */\n/* 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\nGetMeanSquaredDistortion\n          (Image *image,Image *reconstruct_image,double *distortion,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  MagickBooleanType MVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  PixelChannel PVar7;\n  uint uVar8;\n  double *pdVar9;\n  PixelChannelMap *pPVar10;\n  int iVar11;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  ExceptionInfo *pEVar12;\n  Image *pIVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  PixelChannelMap *pPVar14;\n  Image *reconstruct_image_00;\n  int iVar15;\n  PixelTrait PVar16;\n  double *pdVar17;\n  double *pdVar18;\n  uint uVar19;\n  PixelChannelMap *pPVar20;\n  undefined4 uVar21;\n  ExceptionInfo *exception_00;\n  PixelTrait PVar22;\n  uint uVar23;\n  int *piVar24;\n  int *piVar25;\n  code *pcVar26;\n  code *pcVar27;\n  double dVar28;\n  double dVar29;\n  undefined8 uVar30;\n  double channel_distortion [65];\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar23 = image->rows;\n  if (image->rows <= reconstruct_image->rows) {\n    uVar23 = reconstruct_image->rows;\n  }\n  uVar8 = image->columns;\n  if (image->columns <= reconstruct_image->columns) {\n    uVar8 = reconstruct_image->columns;\n  }\n  channel_distortion[0x3c]._0_4_ = &_gp;\n  iVar15 = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar4 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception);\n  uVar5 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception);\n  iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n  if (iVar6 == 4) {\nLAB_0006fff0:\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }\n    (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1 < iVar6) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 == 3) goto LAB_0006fff0;\nLAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }\nLAB_0006fe50:\n  pPVar20 = (PixelChannelMap *)0x0;\n  pPVar14 = (PixelChannelMap *)(channel_distortion + 0x3f);\n  channel_distortion[0x3f]._4_4_ = 0;\n  channel_distortion[0x3f]._0_4_ = 0;\n  channel_distortion[0x40]._0_4_ = image;\n  channel_distortion[0x40]._4_4_ = reconstruct_image;\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6);\n  channel_distortion[0x3d] =\n       (double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_);\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar4);\n  if (0.0 <= channel_distortion[0x3d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x3e] = channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x3e] = -channel_distortion[0x3d];\n  }\n  if (*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x3e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);\n  }\n  pdVar17 = distortion;\n  do {\n    pdVar18 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar28;\n    pdVar17 = pdVar18;\n  } while (distortion + 0x41 != pdVar18);\n  iVar6 = 0;\n  if ((int)image->number_channels < 1) {\nLAB_0007006c:\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n  }\n  else {\n    pPVar20 = image->channel_map;\n    pPVar14 = pPVar20 + image->number_channels;\n    pPVar10 = pPVar20;\n    do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);\n    if (iVar6 == 0) goto LAB_0007006c;\n    dVar28 = (double)iVar6;\n    if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }\n  }\n  iVar11 = *(int *)puVar2;\n  distortion[0x40] = distortion[0x40] / dVar28;\n  if (iVar15 == iVar11) {\n    return MagickTrue;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x784c);\n  pcVar27 = GetPeakAbsoluteDistortion;\n  (*pcVar26)();\n  channel_distortion[0x2e]._0_4_ = pcVar26 + 0x340774;\n  channel_distortion[0x36]._4_4_ = 1;\n  channel_distortion[0x36]._0_4_ = puVar2;\n  piVar25 = *(int **)(pcVar26 + 0x3390f4);\n  PVar22 = *(PixelTrait *)(iVar15 + 0x1c);\n  if (*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits) {\n    PVar22 = pPVar14[2].traits;\n  }\n  PVar7 = *(PixelChannel *)(iVar15 + 0x18);\n  if (*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel) {\n    PVar7 = pPVar14[2].channel;\n  }\n  channel_distortion[0x34]._4_4_ = *piVar25;\n  channel_distortion[0x35]._0_4_ = image;\n  channel_distortion[0x35]._4_4_ = distortion;\n  channel_distortion[0x37]._0_4_ = uVar23;\n  channel_distortion[0x37]._4_4_ = exception;\n  channel_distortion[0x38]._0_4_ = uVar8;\n  channel_distortion[0x38]._4_4_ = uVar4;\n  channel_distortion[0x39]._0_4_ = uVar5;\n  channel_distortion[0x39]._4_4_ = pcVar27;\n  uVar4 = (**(code **)(pcVar26 + 0x339618))();\n  uVar5 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20);\n  iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n  if (iVar11 == 4) {\nLAB_000702f0:\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 != 4) {\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }\n    (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    PVar16 = PVar22;\n    if ((int)PVar22 < 0) {\n      PVar16 = PVar22 + 0x3f;\n    }\n    pdVar17 = (double *)((int)PVar16 >> 6);\n    if (extraout_v1_03 < (int)pdVar17) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }\n    else {\n      bVar1 = (int)PVar22 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar17 = (double *)0x1;\n    }\n  }\n  else {\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 == 3) goto LAB_000702f0;\nLAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar21 = 0;\n  pdVar18 = channel_distortion + 0x30;\n  channel_distortion[0x34]._0_4_ = MagickTrue;\n  channel_distortion[0x30]._0_4_ = iVar15;\n  channel_distortion[0x30]._4_4_ = pPVar14;\n  channel_distortion[0x31]._0_4_ = iVar6;\n  channel_distortion[0x31]._4_4_ = pPVar20;\n  channel_distortion[0x32]._0_4_ = uVar4;\n  channel_distortion[0x32]._4_4_ = uVar5;\n  channel_distortion[0x33]._0_4_ = PVar7;\n  channel_distortion[0x33]._4_4_ = PVar22;\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0);\n  MVar3 = channel_distortion[0x34]._0_4_;\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar4);\n  if (channel_distortion[0x34]._4_4_ == *piVar25) {\n    return MVar3;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x784c);\n  pcVar27 = GetFuzzDistortion;\n  iVar15 = channel_distortion[0x34]._4_4_;\n  (*pcVar26)();\n  channel_distortion[0x1c]._0_4_ = pcVar26 + 0x3404ac;\n  piVar24 = *(int **)(pcVar26 + 0x338e2c);\n  uVar23 = *(uint *)(iVar15 + 0x1c);\n  if (*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c)) {\n    uVar23 = *(uint *)((int)pdVar18 + 0x1c);\n  }\n  uVar8 = *(uint *)(iVar15 + 0x18);\n  if (*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3)) {\n    uVar8 = *(uint *)(pdVar18 + 3);\n  }\n  channel_distortion[0x25]._4_4_ = (Image *)*piVar24;\n  channel_distortion[0x26]._0_4_ = MVar3;\n  channel_distortion[0x26]._4_4_ = pPVar14;\n  channel_distortion[0x27]._0_4_ = PVar22;\n  channel_distortion[0x27]._4_4_ = pPVar20;\n  channel_distortion[0x28]._0_4_ = PVar7;\n  channel_distortion[0x28]._4_4_ = piVar25;\n  channel_distortion[0x29]._0_4_ = uVar4;\n  channel_distortion[0x29]._4_4_ = uVar5;\n  channel_distortion[0x2a]._0_4_ = iVar6;\n  channel_distortion[0x2a]._4_4_ = pcVar27;\n  uVar4 = (**(code **)(pcVar26 + 0x339350))();\n  uVar5 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21);\n  iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n  if (iVar6 == 4) {\nLAB_000706cc:\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1_07 < iVar6) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 == 3) goto LAB_000706cc;\nLAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }\nLAB_00070510:\n  exception_00 = (ExceptionInfo *)0x0;\n  reconstruct_image_00 = (Image *)(channel_distortion + 0x1f);\n  channel_distortion[0x24]._4_4_ = MagickTrue;\n  channel_distortion[0x1f]._4_4_ = 0;\n  channel_distortion[0x1f]._0_4_ = 0;\n  channel_distortion[0x23]._0_4_ = 0;\n  channel_distortion[0x20]._0_4_ = iVar15;\n  channel_distortion[0x20]._4_4_ = pdVar18;\n  channel_distortion[0x21]._0_4_ = pdVar17;\n  channel_distortion[0x21]._4_4_ = uVar21;\n  channel_distortion[0x22]._0_4_ = uVar4;\n  channel_distortion[0x22]._4_4_ = uVar5;\n  channel_distortion[0x23]._4_4_ = uVar8;\n  channel_distortion[0x24]._0_4_ = uVar23;\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)\n  ;\n  MVar3 = channel_distortion[0x24]._4_4_;\n  channel_distortion[0x1d] =\n       (double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_);\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar4);\n  if (0.0 <= channel_distortion[0x1d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x1e] = channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x1e] = -channel_distortion[0x1d];\n  }\n  if (*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x1e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);\n  }\n  pdVar18 = pdVar17;\n  do {\n    pdVar9 = pdVar18 + 1;\n    *pdVar18 = *pdVar18 * dVar28;\n    pdVar18 = pdVar9;\n  } while (pdVar17 + 0x41 != pdVar9);\n  pdVar18 = (double *)0x0;\n  if (0 < *(int *)(iVar15 + 0x2c0)) {\n    exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);\n    reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);\n    pEVar12 = exception_00;\n    do {\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    } while ((Image *)pEVar12 != reconstruct_image_00);\n    if (pdVar18 != (double *)0x0) {\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\nLAB_00070664:\n  dVar28 = pdVar17[0x40] / dVar28;\n  pdVar17[0x40] = dVar28;\n  dVar29 = SQRT(dVar28);\n  if (dVar28 < 0.0) {\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();\n  }\n  pIVar13 = (Image *)*piVar24;\n  pdVar17[0x40] = dVar29;\n  if (channel_distortion[0x25]._4_4_ == pIVar13) {\n    return MVar3;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x784c);\n  pcVar27 = GetRootMeanSquaredDistortion;\n  pIVar13 = channel_distortion[0x25]._4_4_;\n  (*pcVar26)();\n  channel_distortion[0x14]._0_4_ = pcVar26 + 0x340084;\n  dVar28 = 0.0;\n  channel_distortion[0x16]._4_4_ = iVar15;\n  channel_distortion[0x17]._0_4_ = pdVar17;\n  channel_distortion[0x17]._4_4_ = pcVar27;\n  channel_distortion[0x18] = dVar29;\n  channel_distortion[0x15]._4_4_ =\n       GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00);\n  pdVar17 = pdVar18;\n  pcVar26 = channel_distortion[0x14]._0_4_;\n  do {\n    dVar29 = SQRT(*pdVar17);\n    if (*pdVar17 < dVar28) {\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }\n    pdVar9 = pdVar17 + 1;\n    *pdVar17 = dVar29;\n    pdVar17 = pdVar9;\n  } while (pdVar9 != pdVar18 + 0x41);\n  return channel_distortion[0x15]._4_4_;\n}\n\n" comment comment comment comment comment comment (function_definition "MagickBooleanType\nGetMeanSquaredDistortion\n          (Image *image,Image *reconstruct_image,double *distortion,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  MagickBooleanType MVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  PixelChannel PVar7;\n  uint uVar8;\n  double *pdVar9;\n  PixelChannelMap *pPVar10;\n  int iVar11;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  ExceptionInfo *pEVar12;\n  Image *pIVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  PixelChannelMap *pPVar14;\n  Image *reconstruct_image_00;\n  int iVar15;\n  PixelTrait PVar16;\n  double *pdVar17;\n  double *pdVar18;\n  uint uVar19;\n  PixelChannelMap *pPVar20;\n  undefined4 uVar21;\n  ExceptionInfo *exception_00;\n  PixelTrait PVar22;\n  uint uVar23;\n  int *piVar24;\n  int *piVar25;\n  code *pcVar26;\n  code *pcVar27;\n  double dVar28;\n  double dVar29;\n  undefined8 uVar30;\n  double channel_distortion [65];\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar23 = image->rows;\n  if (image->rows <= reconstruct_image->rows) {\n    uVar23 = reconstruct_image->rows;\n  }\n  uVar8 = image->columns;\n  if (image->columns <= reconstruct_image->columns) {\n    uVar8 = reconstruct_image->columns;\n  }\n  channel_distortion[0x3c]._0_4_ = &_gp;\n  iVar15 = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar4 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception);\n  uVar5 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception);\n  iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n  if (iVar6 == 4) {\nLAB_0006fff0:\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }\n    (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1 < iVar6) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 == 3) goto LAB_0006fff0;\nLAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }\nLAB_0006fe50:\n  pPVar20 = (PixelChannelMap *)0x0;\n  pPVar14 = (PixelChannelMap *)(channel_distortion + 0x3f);\n  channel_distortion[0x3f]._4_4_ = 0;\n  channel_distortion[0x3f]._0_4_ = 0;\n  channel_distortion[0x40]._0_4_ = image;\n  channel_distortion[0x40]._4_4_ = reconstruct_image;\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6);\n  channel_distortion[0x3d] =\n       (double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_);\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar4);\n  if (0.0 <= channel_distortion[0x3d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x3e] = channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x3e] = -channel_distortion[0x3d];\n  }\n  if (*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x3e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);\n  }\n  pdVar17 = distortion;\n  do {\n    pdVar18 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar28;\n    pdVar17 = pdVar18;\n  } while (distortion + 0x41 != pdVar18);\n  iVar6 = 0;\n  if ((int)image->number_channels < 1) {\nLAB_0007006c:\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n  }\n  else {\n    pPVar20 = image->channel_map;\n    pPVar14 = pPVar20 + image->number_channels;\n    pPVar10 = pPVar20;\n    do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);\n    if (iVar6 == 0) goto LAB_0007006c;\n    dVar28 = (double)iVar6;\n    if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }\n  }\n  iVar11 = *(int *)puVar2;\n  distortion[0x40] = distortion[0x40] / dVar28;\n  if (iVar15 == iVar11) {\n    return MagickTrue;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x784c);\n  pcVar27 = GetPeakAbsoluteDistortion;\n  (*pcVar26)();\n  channel_distortion[0x2e]._0_4_ = pcVar26 + 0x340774;\n  channel_distortion[0x36]._4_4_ = 1;\n  channel_distortion[0x36]._0_4_ = puVar2;\n  piVar25 = *(int **)(pcVar26 + 0x3390f4);\n  PVar22 = *(PixelTrait *)(iVar15 + 0x1c);\n  if (*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits) {\n    PVar22 = pPVar14[2].traits;\n  }\n  PVar7 = *(PixelChannel *)(iVar15 + 0x18);\n  if (*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel) {\n    PVar7 = pPVar14[2].channel;\n  }\n  channel_distortion[0x34]._4_4_ = *piVar25;\n  channel_distortion[0x35]._0_4_ = image;\n  channel_distortion[0x35]._4_4_ = distortion;\n  channel_distortion[0x37]._0_4_ = uVar23;\n  channel_distortion[0x37]._4_4_ = exception;\n  channel_distortion[0x38]._0_4_ = uVar8;\n  channel_distortion[0x38]._4_4_ = uVar4;\n  channel_distortion[0x39]._0_4_ = uVar5;\n  channel_distortion[0x39]._4_4_ = pcVar27;\n  uVar4 = (**(code **)(pcVar26 + 0x339618))();\n  uVar5 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20);\n  iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n  if (iVar11 == 4) {\nLAB_000702f0:\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 != 4) {\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }\n    (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    PVar16 = PVar22;\n    if ((int)PVar22 < 0) {\n      PVar16 = PVar22 + 0x3f;\n    }\n    pdVar17 = (double *)((int)PVar16 >> 6);\n    if (extraout_v1_03 < (int)pdVar17) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }\n    else {\n      bVar1 = (int)PVar22 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar17 = (double *)0x1;\n    }\n  }\n  else {\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 == 3) goto LAB_000702f0;\nLAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar21 = 0;\n  pdVar18 = channel_distortion + 0x30;\n  channel_distortion[0x34]._0_4_ = MagickTrue;\n  channel_distortion[0x30]._0_4_ = iVar15;\n  channel_distortion[0x30]._4_4_ = pPVar14;\n  channel_distortion[0x31]._0_4_ = iVar6;\n  channel_distortion[0x31]._4_4_ = pPVar20;\n  channel_distortion[0x32]._0_4_ = uVar4;\n  channel_distortion[0x32]._4_4_ = uVar5;\n  channel_distortion[0x33]._0_4_ = PVar7;\n  channel_distortion[0x33]._4_4_ = PVar22;\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0);\n  MVar3 = channel_distortion[0x34]._0_4_;\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar4);\n  if (channel_distortion[0x34]._4_4_ == *piVar25) {\n    return MVar3;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x784c);\n  pcVar27 = GetFuzzDistortion;\n  iVar15 = channel_distortion[0x34]._4_4_;\n  (*pcVar26)();\n  channel_distortion[0x1c]._0_4_ = pcVar26 + 0x3404ac;\n  piVar24 = *(int **)(pcVar26 + 0x338e2c);\n  uVar23 = *(uint *)(iVar15 + 0x1c);\n  if (*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c)) {\n    uVar23 = *(uint *)((int)pdVar18 + 0x1c);\n  }\n  uVar8 = *(uint *)(iVar15 + 0x18);\n  if (*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3)) {\n    uVar8 = *(uint *)(pdVar18 + 3);\n  }\n  channel_distortion[0x25]._4_4_ = (Image *)*piVar24;\n  channel_distortion[0x26]._0_4_ = MVar3;\n  channel_distortion[0x26]._4_4_ = pPVar14;\n  channel_distortion[0x27]._0_4_ = PVar22;\n  channel_distortion[0x27]._4_4_ = pPVar20;\n  channel_distortion[0x28]._0_4_ = PVar7;\n  channel_distortion[0x28]._4_4_ = piVar25;\n  channel_distortion[0x29]._0_4_ = uVar4;\n  channel_distortion[0x29]._4_4_ = uVar5;\n  channel_distortion[0x2a]._0_4_ = iVar6;\n  channel_distortion[0x2a]._4_4_ = pcVar27;\n  uVar4 = (**(code **)(pcVar26 + 0x339350))();\n  uVar5 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21);\n  iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n  if (iVar6 == 4) {\nLAB_000706cc:\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1_07 < iVar6) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 == 3) goto LAB_000706cc;\nLAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }\nLAB_00070510:\n  exception_00 = (ExceptionInfo *)0x0;\n  reconstruct_image_00 = (Image *)(channel_distortion + 0x1f);\n  channel_distortion[0x24]._4_4_ = MagickTrue;\n  channel_distortion[0x1f]._4_4_ = 0;\n  channel_distortion[0x1f]._0_4_ = 0;\n  channel_distortion[0x23]._0_4_ = 0;\n  channel_distortion[0x20]._0_4_ = iVar15;\n  channel_distortion[0x20]._4_4_ = pdVar18;\n  channel_distortion[0x21]._0_4_ = pdVar17;\n  channel_distortion[0x21]._4_4_ = uVar21;\n  channel_distortion[0x22]._0_4_ = uVar4;\n  channel_distortion[0x22]._4_4_ = uVar5;\n  channel_distortion[0x23]._4_4_ = uVar8;\n  channel_distortion[0x24]._0_4_ = uVar23;\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)\n  ;\n  MVar3 = channel_distortion[0x24]._4_4_;\n  channel_distortion[0x1d] =\n       (double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_);\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar4);\n  if (0.0 <= channel_distortion[0x1d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x1e] = channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x1e] = -channel_distortion[0x1d];\n  }\n  if (*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x1e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);\n  }\n  pdVar18 = pdVar17;\n  do {\n    pdVar9 = pdVar18 + 1;\n    *pdVar18 = *pdVar18 * dVar28;\n    pdVar18 = pdVar9;\n  } while (pdVar17 + 0x41 != pdVar9);\n  pdVar18 = (double *)0x0;\n  if (0 < *(int *)(iVar15 + 0x2c0)) {\n    exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);\n    reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);\n    pEVar12 = exception_00;\n    do {\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    } while ((Image *)pEVar12 != reconstruct_image_00);\n    if (pdVar18 != (double *)0x0) {\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\nLAB_00070664:\n  dVar28 = pdVar17[0x40] / dVar28;\n  pdVar17[0x40] = dVar28;\n  dVar29 = SQRT(dVar28);\n  if (dVar28 < 0.0) {\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();\n  }\n  pIVar13 = (Image *)*piVar24;\n  pdVar17[0x40] = dVar29;\n  if (channel_distortion[0x25]._4_4_ == pIVar13) {\n    return MVar3;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x784c);\n  pcVar27 = GetRootMeanSquaredDistortion;\n  pIVar13 = channel_distortion[0x25]._4_4_;\n  (*pcVar26)();\n  channel_distortion[0x14]._0_4_ = pcVar26 + 0x340084;\n  dVar28 = 0.0;\n  channel_distortion[0x16]._4_4_ = iVar15;\n  channel_distortion[0x17]._0_4_ = pdVar17;\n  channel_distortion[0x17]._4_4_ = pcVar27;\n  channel_distortion[0x18] = dVar29;\n  channel_distortion[0x15]._4_4_ =\n       GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00);\n  pdVar17 = pdVar18;\n  pcVar26 = channel_distortion[0x14]._0_4_;\n  do {\n    dVar29 = SQRT(*pdVar17);\n    if (*pdVar17 < dVar28) {\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }\n    pdVar9 = pdVar17 + 1;\n    *pdVar17 = dVar29;\n    pdVar17 = pdVar9;\n  } while (pdVar9 != pdVar18 + 0x41);\n  return channel_distortion[0x15]._4_4_;\n}" type_identifier (function_declarator "GetMeanSquaredDistortion\n          (Image *image,Image *reconstruct_image,double *distortion,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,Image *reconstruct_image,double *distortion,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "Image *reconstruct_image" type_identifier (pointer_declarator "*reconstruct_image" * identifier)) , (parameter_declaration "double *distortion" primitive_type (pointer_declarator "*distortion" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  MagickBooleanType MVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  PixelChannel PVar7;\n  uint uVar8;\n  double *pdVar9;\n  PixelChannelMap *pPVar10;\n  int iVar11;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  ExceptionInfo *pEVar12;\n  Image *pIVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  PixelChannelMap *pPVar14;\n  Image *reconstruct_image_00;\n  int iVar15;\n  PixelTrait PVar16;\n  double *pdVar17;\n  double *pdVar18;\n  uint uVar19;\n  PixelChannelMap *pPVar20;\n  undefined4 uVar21;\n  ExceptionInfo *exception_00;\n  PixelTrait PVar22;\n  uint uVar23;\n  int *piVar24;\n  int *piVar25;\n  code *pcVar26;\n  code *pcVar27;\n  double dVar28;\n  double dVar29;\n  undefined8 uVar30;\n  double channel_distortion [65];\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar23 = image->rows;\n  if (image->rows <= reconstruct_image->rows) {\n    uVar23 = reconstruct_image->rows;\n  }\n  uVar8 = image->columns;\n  if (image->columns <= reconstruct_image->columns) {\n    uVar8 = reconstruct_image->columns;\n  }\n  channel_distortion[0x3c]._0_4_ = &_gp;\n  iVar15 = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar4 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception);\n  uVar5 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception);\n  iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n  if (iVar6 == 4) {\nLAB_0006fff0:\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }\n    (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1 < iVar6) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 == 3) goto LAB_0006fff0;\nLAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }\nLAB_0006fe50:\n  pPVar20 = (PixelChannelMap *)0x0;\n  pPVar14 = (PixelChannelMap *)(channel_distortion + 0x3f);\n  channel_distortion[0x3f]._4_4_ = 0;\n  channel_distortion[0x3f]._0_4_ = 0;\n  channel_distortion[0x40]._0_4_ = image;\n  channel_distortion[0x40]._4_4_ = reconstruct_image;\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6);\n  channel_distortion[0x3d] =\n       (double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_);\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar4);\n  if (0.0 <= channel_distortion[0x3d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x3e] = channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x3e] = -channel_distortion[0x3d];\n  }\n  if (*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x3e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);\n  }\n  pdVar17 = distortion;\n  do {\n    pdVar18 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar28;\n    pdVar17 = pdVar18;\n  } while (distortion + 0x41 != pdVar18);\n  iVar6 = 0;\n  if ((int)image->number_channels < 1) {\nLAB_0007006c:\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n  }\n  else {\n    pPVar20 = image->channel_map;\n    pPVar14 = pPVar20 + image->number_channels;\n    pPVar10 = pPVar20;\n    do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);\n    if (iVar6 == 0) goto LAB_0007006c;\n    dVar28 = (double)iVar6;\n    if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }\n  }\n  iVar11 = *(int *)puVar2;\n  distortion[0x40] = distortion[0x40] / dVar28;\n  if (iVar15 == iVar11) {\n    return MagickTrue;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x784c);\n  pcVar27 = GetPeakAbsoluteDistortion;\n  (*pcVar26)();\n  channel_distortion[0x2e]._0_4_ = pcVar26 + 0x340774;\n  channel_distortion[0x36]._4_4_ = 1;\n  channel_distortion[0x36]._0_4_ = puVar2;\n  piVar25 = *(int **)(pcVar26 + 0x3390f4);\n  PVar22 = *(PixelTrait *)(iVar15 + 0x1c);\n  if (*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits) {\n    PVar22 = pPVar14[2].traits;\n  }\n  PVar7 = *(PixelChannel *)(iVar15 + 0x18);\n  if (*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel) {\n    PVar7 = pPVar14[2].channel;\n  }\n  channel_distortion[0x34]._4_4_ = *piVar25;\n  channel_distortion[0x35]._0_4_ = image;\n  channel_distortion[0x35]._4_4_ = distortion;\n  channel_distortion[0x37]._0_4_ = uVar23;\n  channel_distortion[0x37]._4_4_ = exception;\n  channel_distortion[0x38]._0_4_ = uVar8;\n  channel_distortion[0x38]._4_4_ = uVar4;\n  channel_distortion[0x39]._0_4_ = uVar5;\n  channel_distortion[0x39]._4_4_ = pcVar27;\n  uVar4 = (**(code **)(pcVar26 + 0x339618))();\n  uVar5 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20);\n  iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n  if (iVar11 == 4) {\nLAB_000702f0:\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 != 4) {\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }\n    (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    PVar16 = PVar22;\n    if ((int)PVar22 < 0) {\n      PVar16 = PVar22 + 0x3f;\n    }\n    pdVar17 = (double *)((int)PVar16 >> 6);\n    if (extraout_v1_03 < (int)pdVar17) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }\n    else {\n      bVar1 = (int)PVar22 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar17 = (double *)0x1;\n    }\n  }\n  else {\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 == 3) goto LAB_000702f0;\nLAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar21 = 0;\n  pdVar18 = channel_distortion + 0x30;\n  channel_distortion[0x34]._0_4_ = MagickTrue;\n  channel_distortion[0x30]._0_4_ = iVar15;\n  channel_distortion[0x30]._4_4_ = pPVar14;\n  channel_distortion[0x31]._0_4_ = iVar6;\n  channel_distortion[0x31]._4_4_ = pPVar20;\n  channel_distortion[0x32]._0_4_ = uVar4;\n  channel_distortion[0x32]._4_4_ = uVar5;\n  channel_distortion[0x33]._0_4_ = PVar7;\n  channel_distortion[0x33]._4_4_ = PVar22;\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0);\n  MVar3 = channel_distortion[0x34]._0_4_;\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar4);\n  if (channel_distortion[0x34]._4_4_ == *piVar25) {\n    return MVar3;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x784c);\n  pcVar27 = GetFuzzDistortion;\n  iVar15 = channel_distortion[0x34]._4_4_;\n  (*pcVar26)();\n  channel_distortion[0x1c]._0_4_ = pcVar26 + 0x3404ac;\n  piVar24 = *(int **)(pcVar26 + 0x338e2c);\n  uVar23 = *(uint *)(iVar15 + 0x1c);\n  if (*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c)) {\n    uVar23 = *(uint *)((int)pdVar18 + 0x1c);\n  }\n  uVar8 = *(uint *)(iVar15 + 0x18);\n  if (*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3)) {\n    uVar8 = *(uint *)(pdVar18 + 3);\n  }\n  channel_distortion[0x25]._4_4_ = (Image *)*piVar24;\n  channel_distortion[0x26]._0_4_ = MVar3;\n  channel_distortion[0x26]._4_4_ = pPVar14;\n  channel_distortion[0x27]._0_4_ = PVar22;\n  channel_distortion[0x27]._4_4_ = pPVar20;\n  channel_distortion[0x28]._0_4_ = PVar7;\n  channel_distortion[0x28]._4_4_ = piVar25;\n  channel_distortion[0x29]._0_4_ = uVar4;\n  channel_distortion[0x29]._4_4_ = uVar5;\n  channel_distortion[0x2a]._0_4_ = iVar6;\n  channel_distortion[0x2a]._4_4_ = pcVar27;\n  uVar4 = (**(code **)(pcVar26 + 0x339350))();\n  uVar5 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21);\n  iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n  if (iVar6 == 4) {\nLAB_000706cc:\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1_07 < iVar6) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 == 3) goto LAB_000706cc;\nLAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }\nLAB_00070510:\n  exception_00 = (ExceptionInfo *)0x0;\n  reconstruct_image_00 = (Image *)(channel_distortion + 0x1f);\n  channel_distortion[0x24]._4_4_ = MagickTrue;\n  channel_distortion[0x1f]._4_4_ = 0;\n  channel_distortion[0x1f]._0_4_ = 0;\n  channel_distortion[0x23]._0_4_ = 0;\n  channel_distortion[0x20]._0_4_ = iVar15;\n  channel_distortion[0x20]._4_4_ = pdVar18;\n  channel_distortion[0x21]._0_4_ = pdVar17;\n  channel_distortion[0x21]._4_4_ = uVar21;\n  channel_distortion[0x22]._0_4_ = uVar4;\n  channel_distortion[0x22]._4_4_ = uVar5;\n  channel_distortion[0x23]._4_4_ = uVar8;\n  channel_distortion[0x24]._0_4_ = uVar23;\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)\n  ;\n  MVar3 = channel_distortion[0x24]._4_4_;\n  channel_distortion[0x1d] =\n       (double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_);\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar5);\n  (**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar4);\n  if (0.0 <= channel_distortion[0x1d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x1e] = channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x1e] = -channel_distortion[0x1d];\n  }\n  if (*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x1e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);\n  }\n  pdVar18 = pdVar17;\n  do {\n    pdVar9 = pdVar18 + 1;\n    *pdVar18 = *pdVar18 * dVar28;\n    pdVar18 = pdVar9;\n  } while (pdVar17 + 0x41 != pdVar9);\n  pdVar18 = (double *)0x0;\n  if (0 < *(int *)(iVar15 + 0x2c0)) {\n    exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);\n    reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);\n    pEVar12 = exception_00;\n    do {\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    } while ((Image *)pEVar12 != reconstruct_image_00);\n    if (pdVar18 != (double *)0x0) {\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\nLAB_00070664:\n  dVar28 = pdVar17[0x40] / dVar28;\n  pdVar17[0x40] = dVar28;\n  dVar29 = SQRT(dVar28);\n  if (dVar28 < 0.0) {\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();\n  }\n  pIVar13 = (Image *)*piVar24;\n  pdVar17[0x40] = dVar29;\n  if (channel_distortion[0x25]._4_4_ == pIVar13) {\n    return MVar3;\n  }\n  pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x784c);\n  pcVar27 = GetRootMeanSquaredDistortion;\n  pIVar13 = channel_distortion[0x25]._4_4_;\n  (*pcVar26)();\n  channel_distortion[0x14]._0_4_ = pcVar26 + 0x340084;\n  dVar28 = 0.0;\n  channel_distortion[0x16]._4_4_ = iVar15;\n  channel_distortion[0x17]._0_4_ = pdVar17;\n  channel_distortion[0x17]._4_4_ = pcVar27;\n  channel_distortion[0x18] = dVar29;\n  channel_distortion[0x15]._4_4_ =\n       GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00);\n  pdVar17 = pdVar18;\n  pcVar26 = channel_distortion[0x14]._0_4_;\n  do {\n    dVar29 = SQRT(*pdVar17);\n    if (*pdVar17 < dVar28) {\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }\n    pdVar9 = pdVar17 + 1;\n    *pdVar17 = dVar29;\n    pdVar17 = pdVar9;\n  } while (pdVar9 != pdVar18 + 0x41);\n  return channel_distortion[0x15]._4_4_;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "MagickBooleanType MVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "PixelChannel PVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "double *pdVar9;" primitive_type (pointer_declarator "*pdVar9" * identifier) ;) (declaration "PixelChannelMap *pPVar10;" type_identifier (pointer_declarator "*pPVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "double *extraout_v1_04;" primitive_type (pointer_declarator "*extraout_v1_04" * identifier) ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "ExceptionInfo *pEVar12;" type_identifier (pointer_declarator "*pEVar12" * identifier) ;) (declaration "Image *pIVar13;" type_identifier (pointer_declarator "*pIVar13" * identifier) ;) (declaration "int extraout_v1_07;" primitive_type identifier ;) (declaration "int extraout_v1_08;" primitive_type identifier ;) (declaration "int extraout_v1_09;" primitive_type identifier ;) (declaration "int extraout_v1_10;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar14;" type_identifier (pointer_declarator "*pPVar14" * identifier) ;) (declaration "Image *reconstruct_image_00;" type_identifier (pointer_declarator "*reconstruct_image_00" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "PixelTrait PVar16;" type_identifier identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "double *pdVar18;" primitive_type (pointer_declarator "*pdVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar20;" type_identifier (pointer_declarator "*pPVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "ExceptionInfo *exception_00;" type_identifier (pointer_declarator "*exception_00" * identifier) ;) (declaration "PixelTrait PVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "undefined8 uVar30;" type_identifier identifier ;) (declaration "double channel_distortion [65];" primitive_type (array_declarator "channel_distortion [65]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "uVar23 = image->rows;" (assignment_expression "uVar23 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (if_statement "if (image->rows <= reconstruct_image->rows) {\n    uVar23 = reconstruct_image->rows;\n  }" if (parenthesized_expression "(image->rows <= reconstruct_image->rows)" ( (binary_expression "image->rows <= reconstruct_image->rows" (field_expression "image->rows" identifier -> field_identifier) <= (field_expression "reconstruct_image->rows" identifier -> field_identifier)) )) (compound_statement "{\n    uVar23 = reconstruct_image->rows;\n  }" { (expression_statement "uVar23 = reconstruct_image->rows;" (assignment_expression "uVar23 = reconstruct_image->rows" identifier = (field_expression "reconstruct_image->rows" identifier -> field_identifier)) ;) })) (expression_statement "uVar8 = image->columns;" (assignment_expression "uVar8 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (image->columns <= reconstruct_image->columns) {\n    uVar8 = reconstruct_image->columns;\n  }" if (parenthesized_expression "(image->columns <= reconstruct_image->columns)" ( (binary_expression "image->columns <= reconstruct_image->columns" (field_expression "image->columns" identifier -> field_identifier) <= (field_expression "reconstruct_image->columns" identifier -> field_identifier)) )) (compound_statement "{\n    uVar8 = reconstruct_image->columns;\n  }" { (expression_statement "uVar8 = reconstruct_image->columns;" (assignment_expression "uVar8 = reconstruct_image->columns" identifier = (field_expression "reconstruct_image->columns" identifier -> field_identifier)) ;) })) (expression_statement "channel_distortion[0x3c]._0_4_ = &_gp;" (assignment_expression "channel_distortion[0x3c]._0_4_ = &_gp" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "iVar15 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "iVar15 = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar4 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception);" (assignment_expression "uVar4 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception)" identifier = (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(image,exception)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" ( (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" * (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,exception)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception);" (assignment_expression "uVar5 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception)" identifier = (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x715c)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x715c)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x715c)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x715c" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(reconstruct_image,exception)" ( identifier , identifier )))) ;) (expression_statement "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" identifier = (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar6 == 4) {\nLAB_0006fff0:\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }\n    (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1 < iVar6) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 == 3) goto LAB_0006fff0;\nLAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }" if (parenthesized_expression "(iVar6 == 4)" ( (binary_expression "iVar6 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0006fff0:\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }\n    (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1 < iVar6) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }" { (labeled_statement "LAB_0006fff0:\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);" statement_identifier : (expression_statement "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" identifier = (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;)) (if_statement "if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }" if (parenthesized_expression "(iVar6 != 4)" ( (binary_expression "iVar6 != 4" identifier != number_literal) )) (compound_statement "{\n      iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n      if (iVar6 != 3) goto LAB_0006fe24;\n    }" { (expression_statement "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" identifier = (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar6 != 3) goto LAB_0006fe24;" if (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0006fe24;" goto statement_identifier ;)) })) (expression_statement "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar19 = uVar23;" (assignment_expression "uVar19 = uVar23" identifier = identifier) ;) (if_statement "if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar23 < 0)" ( (binary_expression "(int)uVar23 < 0" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar19 = uVar23 + 0x3f;\n    }" { (expression_statement "uVar19 = uVar23 + 0x3f;" (assignment_expression "uVar19 = uVar23 + 0x3f" identifier = (binary_expression "uVar23 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar6 = (int)uVar19 >> 6;" (assignment_expression "iVar6 = (int)uVar19 >> 6" identifier = (binary_expression "(int)uVar19 >> 6" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (extraout_v1 < iVar6) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < iVar6)" ( (binary_expression "extraout_v1 < iVar6" identifier < identifier) )) (compound_statement "{\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_02 < 2;\n      iVar6 = channel_distortion[0x3d]._0_4_;\n    }" { (expression_statement "channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);" (assignment_expression "channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_)" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) = (cast_expression "(double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar6,channel_distortion[0x3d]._4_4_)" identifier (argument_list "(iVar6,channel_distortion[0x3d]._4_4_)" ( identifier , (field_expression "channel_distortion[0x3d]._4_4_" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_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 "iVar6 = channel_distortion[0x3d]._0_4_;" (assignment_expression "iVar6 = channel_distortion[0x3d]._0_4_" identifier = (field_expression "channel_distortion[0x3d]._0_4_" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar23 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar23 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar23 < 0x80;" (assignment_expression "bVar1 = (int)uVar23 < 0x80" identifier = (binary_expression "(int)uVar23 < 0x80" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }\n    else {\n      iVar6 = 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      channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);\n      (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x3d]._0_4_;\n      if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }\n    }" { (expression_statement "channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_);" (assignment_expression "channel_distortion[0x3d] = (double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_)" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) = (cast_expression "(double)CONCAT44(iVar6,channel_distortion[0x3d]._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar6,channel_distortion[0x3d]._4_4_)" identifier (argument_list "(iVar6,channel_distortion[0x3d]._4_4_)" ( identifier , (field_expression "channel_distortion[0x3d]._4_4_" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar6 = channel_distortion[0x3d]._0_4_;" (assignment_expression "iVar6 = channel_distortion[0x3d]._0_4_" identifier = (field_expression "channel_distortion[0x3d]._0_4_" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (extraout_v1_01 < channel_distortion[0x3d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }" if (parenthesized_expression "(extraout_v1_01 < channel_distortion[0x3d]._0_4_)" ( (binary_expression "extraout_v1_01 < channel_distortion[0x3d]._0_4_" identifier < (field_expression "channel_distortion[0x3d]._0_4_" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        goto LAB_000700d8;\n      }" { (expression_statement "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000700d8;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar6 = 1;\n    }" else (compound_statement "{\n      iVar6 = 1;\n    }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 == 3) goto LAB_0006fff0;\nLAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }" else (compound_statement "{\n    iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);\n    if (iVar6 == 3) goto LAB_0006fff0;\nLAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }" { (expression_statement "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" identifier = (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))(image)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar6 == 3) goto LAB_0006fff0;" if (parenthesized_expression "(iVar6 == 3)" ( (binary_expression "iVar6 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0006fff0;" goto statement_identifier ;)) (labeled_statement "LAB_0006fe24:\n    uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);" statement_identifier : (expression_statement "uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7);" (assignment_expression "uVar30 = (**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7)" identifier = (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;)) (if_statement "if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }\n    else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }\n    }" { (expression_statement "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }" if (parenthesized_expression "((uint)uVar30 < 2)" ( (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;\n        pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }\n      }" { (expression_statement "uVar30 = (*pcVar26)(7);" (assignment_expression "uVar30 = (*pcVar26)(7)" identifier = (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_0006fe38;" if (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_0006fe38;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }" if (parenthesized_expression "((uint)uVar30 < 2)" ( (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar6 = 1;\n          goto LAB_0006fe50;\n        }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006fe50;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }" else (compound_statement "{\nLAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);\n    }" { (labeled_statement "LAB_0006fe38:\n      pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);" statement_identifier : (expression_statement "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;)) }))) (expression_statement "uVar30 = (*pcVar26)(7);" (assignment_expression "uVar30 = (*pcVar26)(7)" identifier = (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }\n    else {\n      iVar6 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2))" ( (binary_expression "((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)" (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2)" ( (comma_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774), (uint)uVar30 < 2" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) , (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000700d8:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_00;\n    }" { (labeled_statement "LAB_000700d8:\n      (*pcVar26)(7);" statement_identifier : (expression_statement "(*pcVar26)(7);" (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar6 = extraout_v1_00;" (assignment_expression "iVar6 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      iVar6 = 2;\n    }" else (compound_statement "{\n      iVar6 = 2;\n    }" { (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006fe50:\n  pPVar20 = (PixelChannelMap *)0x0;" statement_identifier : (expression_statement "pPVar20 = (PixelChannelMap *)0x0;" (assignment_expression "pPVar20 = (PixelChannelMap *)0x0" identifier = (cast_expression "(PixelChannelMap *)0x0" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pPVar14 = (PixelChannelMap *)(channel_distortion + 0x3f);" (assignment_expression "pPVar14 = (PixelChannelMap *)(channel_distortion + 0x3f)" identifier = (cast_expression "(PixelChannelMap *)(channel_distortion + 0x3f)" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion + 0x3f)" ( (binary_expression "channel_distortion + 0x3f" identifier + number_literal) )))) ;) (expression_statement "channel_distortion[0x3f]._4_4_ = 0;" (assignment_expression "channel_distortion[0x3f]._4_4_ = 0" (field_expression "channel_distortion[0x3f]._4_4_" (subscript_expression "channel_distortion[0x3f]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "channel_distortion[0x3f]._0_4_ = 0;" (assignment_expression "channel_distortion[0x3f]._0_4_ = 0" (field_expression "channel_distortion[0x3f]._0_4_" (subscript_expression "channel_distortion[0x3f]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "channel_distortion[0x40]._0_4_ = image;" (assignment_expression "channel_distortion[0x40]._0_4_ = image" (field_expression "channel_distortion[0x40]._0_4_" (subscript_expression "channel_distortion[0x40]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x40]._4_4_ = reconstruct_image;" (assignment_expression "channel_distortion[0x40]._4_4_ = reconstruct_image" (field_expression "channel_distortion[0x40]._4_4_" (subscript_expression "channel_distortion[0x40]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6);" (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x7718)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x7718)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7718)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7718" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948,pPVar14,iVar6)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78) + 0x2948" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7f78)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7f78" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "channel_distortion[0x3d] =\n       (double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_);" (assignment_expression "channel_distortion[0x3d] =\n       (double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_)" (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]) = (cast_expression "(double)CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_)" identifier (argument_list "(channel_distortion[0x3f]._0_4_,channel_distortion[0x3f]._4_4_)" ( (field_expression "channel_distortion[0x3f]._0_4_" (subscript_expression "channel_distortion[0x3f]" identifier [ number_literal ]) . field_identifier) , (field_expression "channel_distortion[0x3f]._4_4_" (subscript_expression "channel_distortion[0x3f]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar5);" (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x79bc)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x79bc" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar4);" (call_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))(uVar4)" (parenthesized_expression "(**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc))" ( (pointer_expression "**(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc)" * (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x79bc)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x79bc" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (if_statement "if (0.0 <= channel_distortion[0x3d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x3e] = channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x3e] = -channel_distortion[0x3d];\n  }" if (parenthesized_expression "(0.0 <= channel_distortion[0x3d])" ( (binary_expression "0.0 <= channel_distortion[0x3d]" number_literal <= (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ])) )) (compound_statement "{\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x3e] = channel_distortion[0x3d];\n  }" { (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "channel_distortion[0x3e] = channel_distortion[0x3d];" (assignment_expression "channel_distortion[0x3e] = channel_distortion[0x3d]" (subscript_expression "channel_distortion[0x3e]" identifier [ number_literal ]) = (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x3e] = -channel_distortion[0x3d];\n  }" else (compound_statement "{\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x3e] = -channel_distortion[0x3d];\n  }" { (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78);" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1a78" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "channel_distortion[0x3e] = -channel_distortion[0x3d];" (assignment_expression "channel_distortion[0x3e] = -channel_distortion[0x3d]" (subscript_expression "channel_distortion[0x3e]" identifier [ number_literal ]) = (unary_expression "-channel_distortion[0x3d]" - (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]))) ;) }))) (if_statement "if (*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x3e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x3e])" ( (binary_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x3e]" (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))) <= (subscript_expression "channel_distortion[0x3e]" identifier [ number_literal ])) )) (compound_statement "{\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d];\n  }" { (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d];" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d]" identifier = (binary_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x3d]" (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))) / (subscript_expression "channel_distortion[0x3d]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);\n  }" else (compound_statement "{\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);\n  }" { (expression_statement "dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8);" (assignment_expression "dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" identifier = (binary_expression "dVar28 / *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x13f8" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar17 = distortion;" (assignment_expression "pdVar17 = distortion" identifier = identifier) ;) (do_statement "do {\n    pdVar18 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar28;\n    pdVar17 = pdVar18;\n  } while (distortion + 0x41 != pdVar18);" do (compound_statement "{\n    pdVar18 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar28;\n    pdVar17 = pdVar18;\n  }" { (expression_statement "pdVar18 = pdVar17 + 1;" (assignment_expression "pdVar18 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar17 = *pdVar17 * dVar28;" (assignment_expression "*pdVar17 = *pdVar17 * dVar28" (pointer_expression "*pdVar17" * identifier) = (binary_expression "*pdVar17 * dVar28" (pointer_expression "*pdVar17" * identifier) * identifier)) ;) (expression_statement "pdVar17 = pdVar18;" (assignment_expression "pdVar17 = pdVar18" identifier = identifier) ;) }) while (parenthesized_expression "(distortion + 0x41 != pdVar18)" ( (binary_expression "distortion + 0x41 != pdVar18" (binary_expression "distortion + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((int)image->number_channels < 1) {\nLAB_0007006c:\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n  }\n  else {\n    pPVar20 = image->channel_map;\n    pPVar14 = pPVar20 + image->number_channels;\n    pPVar10 = pPVar20;\n    do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);\n    if (iVar6 == 0) goto LAB_0007006c;\n    dVar28 = (double)iVar6;\n    if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }\n  }" if (parenthesized_expression "((int)image->number_channels < 1)" ( (binary_expression "(int)image->number_channels < 1" (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\nLAB_0007006c:\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);\n  }" { (labeled_statement "LAB_0007006c:\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);" statement_identifier : (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438);" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1438" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))))) ;)) }) (else_clause "else {\n    pPVar20 = image->channel_map;\n    pPVar14 = pPVar20 + image->number_channels;\n    pPVar10 = pPVar20;\n    do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);\n    if (iVar6 == 0) goto LAB_0007006c;\n    dVar28 = (double)iVar6;\n    if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }\n  }" else (compound_statement "{\n    pPVar20 = image->channel_map;\n    pPVar14 = pPVar20 + image->number_channels;\n    pPVar10 = pPVar20;\n    do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);\n    if (iVar6 == 0) goto LAB_0007006c;\n    dVar28 = (double)iVar6;\n    if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }\n  }" { (expression_statement "pPVar20 = image->channel_map;" (assignment_expression "pPVar20 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "pPVar14 = pPVar20 + image->number_channels;" (assignment_expression "pPVar14 = pPVar20 + image->number_channels" identifier = (binary_expression "pPVar20 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pPVar10 = pPVar20;" (assignment_expression "pPVar10 = pPVar20" identifier = identifier) ;) (do_statement "do {\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    } while (pPVar10 != pPVar14);" do (compound_statement "{\n      if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }\n      pPVar10 = pPVar10 + 1;\n    }" { (if_statement "if ((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n        iVar6 = iVar6 + 1;\n      }" if (parenthesized_expression "((pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait)" ( (binary_expression "(pPVar20[pPVar10->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait" (parenthesized_expression "(pPVar20[pPVar10->channel].traits & UpdatePixelTrait)" ( (binary_expression "pPVar20[pPVar10->channel].traits & UpdatePixelTrait" (field_expression "pPVar20[pPVar10->channel].traits" (subscript_expression "pPVar20[pPVar10->channel]" identifier [ (field_expression "pPVar10->channel" identifier -> field_identifier) ]) . field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n        iVar6 = iVar6 + 1;\n      }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "pPVar10 = pPVar10 + 1;" (assignment_expression "pPVar10 = pPVar10 + 1" identifier = (binary_expression "pPVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar10 != pPVar14)" ( (binary_expression "pPVar10 != pPVar14" identifier != identifier) )) ;) (if_statement "if (iVar6 == 0) goto LAB_0007006c;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007006c;" goto statement_identifier ;)) (expression_statement "dVar28 = (double)iVar6;" (assignment_expression "dVar28 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar6 < 0) {\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n      dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);\n    }" { (expression_statement "dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418);" (assignment_expression "dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418)" identifier = (binary_expression "dVar28 + *(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418)" ( (binary_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0) + 0x1418" (pointer_expression "*(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))))) ;) })) }))) (expression_statement "iVar11 = *(int *)puVar2;" (assignment_expression "iVar11 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "distortion[0x40] = distortion[0x40] / dVar28;" (assignment_expression "distortion[0x40] = distortion[0x40] / dVar28" (subscript_expression "distortion[0x40]" identifier [ number_literal ]) = (binary_expression "distortion[0x40] / dVar28" (subscript_expression "distortion[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (iVar15 == iVar11) {\n    return MagickTrue;\n  }" if (parenthesized_expression "(iVar15 == iVar11)" ( (binary_expression "iVar15 == iVar11" identifier == identifier) )) (compound_statement "{\n    return MagickTrue;\n  }" { (return_statement "return MagickTrue;" return identifier ;) })) (expression_statement "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x784c);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x3c]._0_4_ + -0x784c)" identifier = (pointer_expression "*(code **)(channel_distortion[0x3c]._0_4_ + -0x784c)" * (cast_expression "(code **)(channel_distortion[0x3c]._0_4_ + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x3c]._0_4_ + -0x784c)" ( (binary_expression "channel_distortion[0x3c]._0_4_ + -0x784c" (field_expression "channel_distortion[0x3c]._0_4_" (subscript_expression "channel_distortion[0x3c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (expression_statement "pcVar27 = GetPeakAbsoluteDistortion;" (assignment_expression "pcVar27 = GetPeakAbsoluteDistortion" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "channel_distortion[0x2e]._0_4_ = pcVar26 + 0x340774;" (assignment_expression "channel_distortion[0x2e]._0_4_ = pcVar26 + 0x340774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) = (binary_expression "pcVar26 + 0x340774" identifier + number_literal)) ;) (expression_statement "channel_distortion[0x36]._4_4_ = 1;" (assignment_expression "channel_distortion[0x36]._4_4_ = 1" (field_expression "channel_distortion[0x36]._4_4_" (subscript_expression "channel_distortion[0x36]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "channel_distortion[0x36]._0_4_ = puVar2;" (assignment_expression "channel_distortion[0x36]._0_4_ = puVar2" (field_expression "channel_distortion[0x36]._0_4_" (subscript_expression "channel_distortion[0x36]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "piVar25 = *(int **)(pcVar26 + 0x3390f4);" (assignment_expression "piVar25 = *(int **)(pcVar26 + 0x3390f4)" identifier = (pointer_expression "*(int **)(pcVar26 + 0x3390f4)" * (cast_expression "(int **)(pcVar26 + 0x3390f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x3390f4)" ( (binary_expression "pcVar26 + 0x3390f4" identifier + number_literal) ))))) ;) (expression_statement "PVar22 = *(PixelTrait *)(iVar15 + 0x1c);" (assignment_expression "PVar22 = *(PixelTrait *)(iVar15 + 0x1c)" identifier = (pointer_expression "*(PixelTrait *)(iVar15 + 0x1c)" * (cast_expression "(PixelTrait *)(iVar15 + 0x1c)" ( (type_descriptor "PixelTrait *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits) {\n    PVar22 = pPVar14[2].traits;\n  }" if (parenthesized_expression "(*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits)" ( (binary_expression "*(PixelTrait *)(iVar15 + 0x1c) <= pPVar14[2].traits" (pointer_expression "*(PixelTrait *)(iVar15 + 0x1c)" * (cast_expression "(PixelTrait *)(iVar15 + 0x1c)" ( (type_descriptor "PixelTrait *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) <= (field_expression "pPVar14[2].traits" (subscript_expression "pPVar14[2]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n    PVar22 = pPVar14[2].traits;\n  }" { (expression_statement "PVar22 = pPVar14[2].traits;" (assignment_expression "PVar22 = pPVar14[2].traits" identifier = (field_expression "pPVar14[2].traits" (subscript_expression "pPVar14[2]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "PVar7 = *(PixelChannel *)(iVar15 + 0x18);" (assignment_expression "PVar7 = *(PixelChannel *)(iVar15 + 0x18)" identifier = (pointer_expression "*(PixelChannel *)(iVar15 + 0x18)" * (cast_expression "(PixelChannel *)(iVar15 + 0x18)" ( (type_descriptor "PixelChannel *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel) {\n    PVar7 = pPVar14[2].channel;\n  }" if (parenthesized_expression "(*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel)" ( (binary_expression "*(PixelChannel *)(iVar15 + 0x18) <= pPVar14[2].channel" (pointer_expression "*(PixelChannel *)(iVar15 + 0x18)" * (cast_expression "(PixelChannel *)(iVar15 + 0x18)" ( (type_descriptor "PixelChannel *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) <= (field_expression "pPVar14[2].channel" (subscript_expression "pPVar14[2]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n    PVar7 = pPVar14[2].channel;\n  }" { (expression_statement "PVar7 = pPVar14[2].channel;" (assignment_expression "PVar7 = pPVar14[2].channel" identifier = (field_expression "pPVar14[2].channel" (subscript_expression "pPVar14[2]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "channel_distortion[0x34]._4_4_ = *piVar25;" (assignment_expression "channel_distortion[0x34]._4_4_ = *piVar25" (field_expression "channel_distortion[0x34]._4_4_" (subscript_expression "channel_distortion[0x34]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "channel_distortion[0x35]._0_4_ = image;" (assignment_expression "channel_distortion[0x35]._0_4_ = image" (field_expression "channel_distortion[0x35]._0_4_" (subscript_expression "channel_distortion[0x35]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x35]._4_4_ = distortion;" (assignment_expression "channel_distortion[0x35]._4_4_ = distortion" (field_expression "channel_distortion[0x35]._4_4_" (subscript_expression "channel_distortion[0x35]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x37]._0_4_ = uVar23;" (assignment_expression "channel_distortion[0x37]._0_4_ = uVar23" (field_expression "channel_distortion[0x37]._0_4_" (subscript_expression "channel_distortion[0x37]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x37]._4_4_ = exception;" (assignment_expression "channel_distortion[0x37]._4_4_ = exception" (field_expression "channel_distortion[0x37]._4_4_" (subscript_expression "channel_distortion[0x37]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x38]._0_4_ = uVar8;" (assignment_expression "channel_distortion[0x38]._0_4_ = uVar8" (field_expression "channel_distortion[0x38]._0_4_" (subscript_expression "channel_distortion[0x38]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x38]._4_4_ = uVar4;" (assignment_expression "channel_distortion[0x38]._4_4_ = uVar4" (field_expression "channel_distortion[0x38]._4_4_" (subscript_expression "channel_distortion[0x38]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x39]._0_4_ = uVar5;" (assignment_expression "channel_distortion[0x39]._0_4_ = uVar5" (field_expression "channel_distortion[0x39]._0_4_" (subscript_expression "channel_distortion[0x39]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x39]._4_4_ = pcVar27;" (assignment_expression "channel_distortion[0x39]._4_4_ = pcVar27" (field_expression "channel_distortion[0x39]._4_4_" (subscript_expression "channel_distortion[0x39]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "uVar4 = (**(code **)(pcVar26 + 0x339618))();" (assignment_expression "uVar4 = (**(code **)(pcVar26 + 0x339618))()" identifier = (call_expression "(**(code **)(pcVar26 + 0x339618))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x339618))" ( (pointer_expression "**(code **)(pcVar26 + 0x339618)" * (pointer_expression "*(code **)(pcVar26 + 0x339618)" * (cast_expression "(code **)(pcVar26 + 0x339618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x339618)" ( (binary_expression "pcVar26 + 0x339618" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20);" (assignment_expression "uVar5 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20)" identifier = (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))(pPVar14,pPVar20)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x715c)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x715c)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x715c)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x715c" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(pPVar14,pPVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar11 == 4) {\nLAB_000702f0:\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 != 4) {\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }\n    (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    PVar16 = PVar22;\n    if ((int)PVar22 < 0) {\n      PVar16 = PVar22 + 0x3f;\n    }\n    pdVar17 = (double *)((int)PVar16 >> 6);\n    if (extraout_v1_03 < (int)pdVar17) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }\n    else {\n      bVar1 = (int)PVar22 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar17 = (double *)0x1;\n    }\n  }\n  else {\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 == 3) goto LAB_000702f0;\nLAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(iVar11 == 4)" ( (binary_expression "iVar11 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_000702f0:\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 != 4) {\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }\n    (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    PVar16 = PVar22;\n    if ((int)PVar22 < 0) {\n      PVar16 = PVar22 + 0x3f;\n    }\n    pdVar17 = (double *)((int)PVar16 >> 6);\n    if (extraout_v1_03 < (int)pdVar17) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }\n    else {\n      bVar1 = (int)PVar22 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar17 = (double *)0x1;\n    }\n  }" { (labeled_statement "LAB_000702f0:\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);" statement_identifier : (expression_statement "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;)) (if_statement "if (iVar11 != 4) {\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }" if (parenthesized_expression "(iVar11 != 4)" ( (binary_expression "iVar11 != 4" identifier != number_literal) )) (compound_statement "{\n      iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n      if (iVar11 != 3) goto LAB_0007021c;\n    }" { (expression_statement "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar11 != 3) goto LAB_0007021c;" if (parenthesized_expression "(iVar11 != 3)" ( (binary_expression "iVar11 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0007021c;" goto statement_identifier ;)) })) (expression_statement "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "PVar16 = PVar22;" (assignment_expression "PVar16 = PVar22" identifier = identifier) ;) (if_statement "if ((int)PVar22 < 0) {\n      PVar16 = PVar22 + 0x3f;\n    }" if (parenthesized_expression "((int)PVar22 < 0)" ( (binary_expression "(int)PVar22 < 0" (cast_expression "(int)PVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      PVar16 = PVar22 + 0x3f;\n    }" { (expression_statement "PVar16 = PVar22 + 0x3f;" (assignment_expression "PVar16 = PVar22 + 0x3f" identifier = (binary_expression "PVar22 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar17 = (double *)((int)PVar16 >> 6);" (assignment_expression "pdVar17 = (double *)((int)PVar16 >> 6)" identifier = (cast_expression "(double *)((int)PVar16 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)PVar16 >> 6)" ( (binary_expression "(int)PVar16 >> 6" (cast_expression "(int)PVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1_03 < (int)pdVar17) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }\n    else {\n      bVar1 = (int)PVar22 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < (int)pdVar17)" ( (binary_expression "extraout_v1_03 < (int)pdVar17" identifier < (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n    }" { (expression_statement "channel_distortion[0x2f]._4_4_ = pdVar17;" (assignment_expression "channel_distortion[0x2f]._4_4_ = pdVar17" (field_expression "channel_distortion[0x2f]._4_4_" (subscript_expression "channel_distortion[0x2f]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_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)) ;) (expression_statement "pdVar17 = channel_distortion[0x2f]._4_4_;" (assignment_expression "pdVar17 = channel_distortion[0x2f]._4_4_" identifier = (field_expression "channel_distortion[0x2f]._4_4_" (subscript_expression "channel_distortion[0x2f]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n      bVar1 = (int)PVar22 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)PVar22 < 0x80;\n    }" { (expression_statement "bVar1 = (int)PVar22 < 0x80;" (assignment_expression "bVar1 = (int)PVar22 < 0x80" identifier = (binary_expression "(int)PVar22 < 0x80" (cast_expression "(int)PVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar17 = (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      channel_distortion[0x2f]._4_4_ = pdVar17;\n      (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n      pdVar17 = channel_distortion[0x2f]._4_4_;\n      if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }\n    }" { (expression_statement "channel_distortion[0x2f]._4_4_ = pdVar17;" (assignment_expression "channel_distortion[0x2f]._4_4_ = pdVar17" (field_expression "channel_distortion[0x2f]._4_4_" (subscript_expression "channel_distortion[0x2f]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar17 = channel_distortion[0x2f]._4_4_;" (assignment_expression "pdVar17 = channel_distortion[0x2f]._4_4_" identifier = (field_expression "channel_distortion[0x2f]._4_4_" (subscript_expression "channel_distortion[0x2f]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }" if (parenthesized_expression "(extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_)" ( (binary_expression "extraout_v1_05 < (int)channel_distortion[0x2f]._4_4_" identifier < (cast_expression "(int)channel_distortion[0x2f]._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "channel_distortion[0x2f]._4_4_" (subscript_expression "channel_distortion[0x2f]" identifier [ number_literal ]) . field_identifier))) )) (compound_statement "{\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        goto LAB_000703a0;\n      }" { (expression_statement "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000703a0;" goto statement_identifier ;) })) }) (else_clause "else {\n      pdVar17 = (double *)0x1;\n    }" else (compound_statement "{\n      pdVar17 = (double *)0x1;\n    }" { (expression_statement "pdVar17 = (double *)0x1;" (assignment_expression "pdVar17 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 == 3) goto LAB_000702f0;\nLAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);\n    if (iVar11 == 3) goto LAB_000702f0;\nLAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }\n  }" { (expression_statement "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar11 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar11 == 3) goto LAB_000702f0;" if (parenthesized_expression "(iVar11 == 3)" ( (binary_expression "iVar11 == 3" identifier == number_literal) )) (goto_statement "goto LAB_000702f0;" goto statement_identifier ;)) (labeled_statement "LAB_0007021c:\n    uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);" statement_identifier : (expression_statement "uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7);" (assignment_expression "uVar30 = (**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7)" identifier = (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;)) (if_statement "if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }" { (expression_statement "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" if (parenthesized_expression "((uint)uVar30 < 2)" ( (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;\n        pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" { (expression_statement "uVar30 = (*pcVar26)(7);" (assignment_expression "uVar30 = (*pcVar26)(7)" identifier = (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_00070230;" if (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_00070230;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((uint)uVar30 < 2) {\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }" if (parenthesized_expression "((uint)uVar30 < 2)" ( (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar17 = (double *)0x1;\n          goto LAB_00070248;\n        }" { (expression_statement "pdVar17 = (double *)0x1;" (assignment_expression "pdVar17 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00070248;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }" else (compound_statement "{\nLAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);\n    }" { (labeled_statement "LAB_00070230:\n      pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);" statement_identifier : (expression_statement "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;)) }))) (expression_statement "uVar30 = (*pcVar26)(7);" (assignment_expression "uVar30 = (*pcVar26)(7)" identifier = (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }\n    else {\n      pdVar17 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2))" ( (binary_expression "((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)" (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2)" ( (comma_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774), (uint)uVar30 < 2" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7774" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) , (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000703a0:\n      (*pcVar26)(7);\n      pdVar17 = extraout_v1_04;\n    }" { (labeled_statement "LAB_000703a0:\n      (*pcVar26)(7);" statement_identifier : (expression_statement "(*pcVar26)(7);" (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "pdVar17 = extraout_v1_04;" (assignment_expression "pdVar17 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n      pdVar17 = (double *)0x2;\n    }" else (compound_statement "{\n      pdVar17 = (double *)0x2;\n    }" { (expression_statement "pdVar17 = (double *)0x2;" (assignment_expression "pdVar17 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_00070248:\n  uVar21 = 0;" statement_identifier : (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;)) (expression_statement "pdVar18 = channel_distortion + 0x30;" (assignment_expression "pdVar18 = channel_distortion + 0x30" identifier = (binary_expression "channel_distortion + 0x30" identifier + number_literal)) ;) (expression_statement "channel_distortion[0x34]._0_4_ = MagickTrue;" (assignment_expression "channel_distortion[0x34]._0_4_ = MagickTrue" (field_expression "channel_distortion[0x34]._0_4_" (subscript_expression "channel_distortion[0x34]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x30]._0_4_ = iVar15;" (assignment_expression "channel_distortion[0x30]._0_4_ = iVar15" (field_expression "channel_distortion[0x30]._0_4_" (subscript_expression "channel_distortion[0x30]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x30]._4_4_ = pPVar14;" (assignment_expression "channel_distortion[0x30]._4_4_ = pPVar14" (field_expression "channel_distortion[0x30]._4_4_" (subscript_expression "channel_distortion[0x30]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x31]._0_4_ = iVar6;" (assignment_expression "channel_distortion[0x31]._0_4_ = iVar6" (field_expression "channel_distortion[0x31]._0_4_" (subscript_expression "channel_distortion[0x31]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x31]._4_4_ = pPVar20;" (assignment_expression "channel_distortion[0x31]._4_4_ = pPVar20" (field_expression "channel_distortion[0x31]._4_4_" (subscript_expression "channel_distortion[0x31]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x32]._0_4_ = uVar4;" (assignment_expression "channel_distortion[0x32]._0_4_ = uVar4" (field_expression "channel_distortion[0x32]._0_4_" (subscript_expression "channel_distortion[0x32]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x32]._4_4_ = uVar5;" (assignment_expression "channel_distortion[0x32]._4_4_ = uVar5" (field_expression "channel_distortion[0x32]._4_4_" (subscript_expression "channel_distortion[0x32]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x33]._0_4_ = PVar7;" (assignment_expression "channel_distortion[0x33]._0_4_ = PVar7" (field_expression "channel_distortion[0x33]._0_4_" (subscript_expression "channel_distortion[0x33]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x33]._4_4_ = PVar22;" (assignment_expression "channel_distortion[0x33]._4_4_ = PVar22" (field_expression "channel_distortion[0x33]._4_4_" (subscript_expression "channel_distortion[0x33]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0);" (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x7718)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x7718)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7718)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7718" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0)" ( (binary_expression "*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78) + 0x2dc0" (pointer_expression "*(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78)" * (cast_expression "(int *)(channel_distortion[0x2e]._0_4_ + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x7f78)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x7f78" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))) ;) (expression_statement "MVar3 = channel_distortion[0x34]._0_4_;" (assignment_expression "MVar3 = channel_distortion[0x34]._0_4_" identifier = (field_expression "channel_distortion[0x34]._0_4_" (subscript_expression "channel_distortion[0x34]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar5);" (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x79bc)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x79bc" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar4);" (call_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))(uVar4)" (parenthesized_expression "(**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc))" ( (pointer_expression "**(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc)" * (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x79bc)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x79bc" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (if_statement "if (channel_distortion[0x34]._4_4_ == *piVar25) {\n    return MVar3;\n  }" if (parenthesized_expression "(channel_distortion[0x34]._4_4_ == *piVar25)" ( (binary_expression "channel_distortion[0x34]._4_4_ == *piVar25" (field_expression "channel_distortion[0x34]._4_4_" (subscript_expression "channel_distortion[0x34]" identifier [ number_literal ]) . field_identifier) == (pointer_expression "*piVar25" * identifier)) )) (compound_statement "{\n    return MVar3;\n  }" { (return_statement "return MVar3;" return identifier ;) })) (expression_statement "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x784c);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x2e]._0_4_ + -0x784c)" identifier = (pointer_expression "*(code **)(channel_distortion[0x2e]._0_4_ + -0x784c)" * (cast_expression "(code **)(channel_distortion[0x2e]._0_4_ + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x2e]._0_4_ + -0x784c)" ( (binary_expression "channel_distortion[0x2e]._0_4_ + -0x784c" (field_expression "channel_distortion[0x2e]._0_4_" (subscript_expression "channel_distortion[0x2e]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (expression_statement "pcVar27 = GetFuzzDistortion;" (assignment_expression "pcVar27 = GetFuzzDistortion" identifier = identifier) ;) (expression_statement "iVar15 = channel_distortion[0x34]._4_4_;" (assignment_expression "iVar15 = channel_distortion[0x34]._4_4_" identifier = (field_expression "channel_distortion[0x34]._4_4_" (subscript_expression "channel_distortion[0x34]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "channel_distortion[0x1c]._0_4_ = pcVar26 + 0x3404ac;" (assignment_expression "channel_distortion[0x1c]._0_4_ = pcVar26 + 0x3404ac" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) = (binary_expression "pcVar26 + 0x3404ac" identifier + number_literal)) ;) (expression_statement "piVar24 = *(int **)(pcVar26 + 0x338e2c);" (assignment_expression "piVar24 = *(int **)(pcVar26 + 0x338e2c)" identifier = (pointer_expression "*(int **)(pcVar26 + 0x338e2c)" * (cast_expression "(int **)(pcVar26 + 0x338e2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x338e2c)" ( (binary_expression "pcVar26 + 0x338e2c" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(iVar15 + 0x1c);" (assignment_expression "uVar23 = *(uint *)(iVar15 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c)) {\n    uVar23 = *(uint *)((int)pdVar18 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c))" ( (binary_expression "*(uint *)(iVar15 + 0x1c) <= *(uint *)((int)pdVar18 + 0x1c)" (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)((int)pdVar18 + 0x1c)" * (cast_expression "(uint *)((int)pdVar18 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x1c)" ( (binary_expression "(int)pdVar18 + 0x1c" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    uVar23 = *(uint *)((int)pdVar18 + 0x1c);\n  }" { (expression_statement "uVar23 = *(uint *)((int)pdVar18 + 0x1c);" (assignment_expression "uVar23 = *(uint *)((int)pdVar18 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pdVar18 + 0x1c)" * (cast_expression "(uint *)((int)pdVar18 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x1c)" ( (binary_expression "(int)pdVar18 + 0x1c" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "uVar8 = *(uint *)(iVar15 + 0x18);" (assignment_expression "uVar8 = *(uint *)(iVar15 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar15 + 0x18)" * (cast_expression "(uint *)(iVar15 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3)) {\n    uVar8 = *(uint *)(pdVar18 + 3);\n  }" if (parenthesized_expression "(*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3))" ( (binary_expression "*(uint *)(iVar15 + 0x18) <= *(uint *)(pdVar18 + 3)" (pointer_expression "*(uint *)(iVar15 + 0x18)" * (cast_expression "(uint *)(iVar15 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(pdVar18 + 3)" * (cast_expression "(uint *)(pdVar18 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 3)" ( (binary_expression "pdVar18 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar8 = *(uint *)(pdVar18 + 3);\n  }" { (expression_statement "uVar8 = *(uint *)(pdVar18 + 3);" (assignment_expression "uVar8 = *(uint *)(pdVar18 + 3)" identifier = (pointer_expression "*(uint *)(pdVar18 + 3)" * (cast_expression "(uint *)(pdVar18 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 3)" ( (binary_expression "pdVar18 + 3" identifier + number_literal) ))))) ;) })) (expression_statement "channel_distortion[0x25]._4_4_ = (Image *)*piVar24;" (assignment_expression "channel_distortion[0x25]._4_4_ = (Image *)*piVar24" (field_expression "channel_distortion[0x25]._4_4_" (subscript_expression "channel_distortion[0x25]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Image *)*piVar24" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "channel_distortion[0x26]._0_4_ = MVar3;" (assignment_expression "channel_distortion[0x26]._0_4_ = MVar3" (field_expression "channel_distortion[0x26]._0_4_" (subscript_expression "channel_distortion[0x26]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x26]._4_4_ = pPVar14;" (assignment_expression "channel_distortion[0x26]._4_4_ = pPVar14" (field_expression "channel_distortion[0x26]._4_4_" (subscript_expression "channel_distortion[0x26]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x27]._0_4_ = PVar22;" (assignment_expression "channel_distortion[0x27]._0_4_ = PVar22" (field_expression "channel_distortion[0x27]._0_4_" (subscript_expression "channel_distortion[0x27]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x27]._4_4_ = pPVar20;" (assignment_expression "channel_distortion[0x27]._4_4_ = pPVar20" (field_expression "channel_distortion[0x27]._4_4_" (subscript_expression "channel_distortion[0x27]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x28]._0_4_ = PVar7;" (assignment_expression "channel_distortion[0x28]._0_4_ = PVar7" (field_expression "channel_distortion[0x28]._0_4_" (subscript_expression "channel_distortion[0x28]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x28]._4_4_ = piVar25;" (assignment_expression "channel_distortion[0x28]._4_4_ = piVar25" (field_expression "channel_distortion[0x28]._4_4_" (subscript_expression "channel_distortion[0x28]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x29]._0_4_ = uVar4;" (assignment_expression "channel_distortion[0x29]._0_4_ = uVar4" (field_expression "channel_distortion[0x29]._0_4_" (subscript_expression "channel_distortion[0x29]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x29]._4_4_ = uVar5;" (assignment_expression "channel_distortion[0x29]._4_4_ = uVar5" (field_expression "channel_distortion[0x29]._4_4_" (subscript_expression "channel_distortion[0x29]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x2a]._0_4_ = iVar6;" (assignment_expression "channel_distortion[0x2a]._0_4_ = iVar6" (field_expression "channel_distortion[0x2a]._0_4_" (subscript_expression "channel_distortion[0x2a]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x2a]._4_4_ = pcVar27;" (assignment_expression "channel_distortion[0x2a]._4_4_ = pcVar27" (field_expression "channel_distortion[0x2a]._4_4_" (subscript_expression "channel_distortion[0x2a]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "uVar4 = (**(code **)(pcVar26 + 0x339350))();" (assignment_expression "uVar4 = (**(code **)(pcVar26 + 0x339350))()" identifier = (call_expression "(**(code **)(pcVar26 + 0x339350))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x339350))" ( (pointer_expression "**(code **)(pcVar26 + 0x339350)" * (pointer_expression "*(code **)(pcVar26 + 0x339350)" * (cast_expression "(code **)(pcVar26 + 0x339350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x339350)" ( (binary_expression "pcVar26 + 0x339350" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21);" (assignment_expression "uVar5 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21)" identifier = (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))(pdVar18,uVar21)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x715c)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x715c)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x715c)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x715c" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(pdVar18,uVar21)" ( identifier , identifier )))) ;) (expression_statement "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar6 == 4) {\nLAB_000706cc:\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1_07 < iVar6) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }\n  else {\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 == 3) goto LAB_000706cc;\nLAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }" if (parenthesized_expression "(iVar6 == 4)" ( (binary_expression "iVar6 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_000706cc:\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    uVar19 = uVar23;\n    if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }\n    iVar6 = (int)uVar19 >> 6;\n    if (extraout_v1_07 < iVar6) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar6 = 1;\n    }\n  }" { (labeled_statement "LAB_000706cc:\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);" statement_identifier : (expression_statement "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;)) (if_statement "if (iVar6 != 4) {\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }" if (parenthesized_expression "(iVar6 != 4)" ( (binary_expression "iVar6 != 4" identifier != number_literal) )) (compound_statement "{\n      iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n      if (iVar6 != 3) goto LAB_000704e4;\n    }" { (expression_statement "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar6 != 3) goto LAB_000704e4;" if (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) (goto_statement "goto LAB_000704e4;" goto statement_identifier ;)) })) (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar19 = uVar23;" (assignment_expression "uVar19 = uVar23" identifier = identifier) ;) (if_statement "if ((int)uVar23 < 0) {\n      uVar19 = uVar23 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar23 < 0)" ( (binary_expression "(int)uVar23 < 0" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar19 = uVar23 + 0x3f;\n    }" { (expression_statement "uVar19 = uVar23 + 0x3f;" (assignment_expression "uVar19 = uVar23 + 0x3f" identifier = (binary_expression "uVar23 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar6 = (int)uVar19 >> 6;" (assignment_expression "iVar6 = (int)uVar19 >> 6" identifier = (binary_expression "(int)uVar19 >> 6" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (extraout_v1_07 < iVar6) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }\n    else {\n      bVar1 = (int)uVar23 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_07 < iVar6)" ( (binary_expression "extraout_v1_07 < iVar6" identifier < identifier) )) (compound_statement "{\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      bVar1 = extraout_v1_10 < 2;\n      iVar6 = channel_distortion[0x1d]._0_4_;\n    }" { (expression_statement "channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);" (assignment_expression "channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_)" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) = (cast_expression "(double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar6,channel_distortion[0x1d]._4_4_)" identifier (argument_list "(iVar6,channel_distortion[0x1d]._4_4_)" ( identifier , (field_expression "channel_distortion[0x1d]._4_4_" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_10 < 2;" (assignment_expression "bVar1 = extraout_v1_10 < 2" identifier = (binary_expression "extraout_v1_10 < 2" identifier < number_literal)) ;) (expression_statement "iVar6 = channel_distortion[0x1d]._0_4_;" (assignment_expression "iVar6 = channel_distortion[0x1d]._0_4_" identifier = (field_expression "channel_distortion[0x1d]._0_4_" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar23 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar23 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar23 < 0x80;" (assignment_expression "bVar1 = (int)uVar23 < 0x80" identifier = (binary_expression "(int)uVar23 < 0x80" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar6 = 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      channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);\n      (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n      iVar6 = channel_distortion[0x1d]._0_4_;\n      if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }\n    }" { (expression_statement "channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_);" (assignment_expression "channel_distortion[0x1d] = (double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_)" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) = (cast_expression "(double)CONCAT44(iVar6,channel_distortion[0x1d]._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar6,channel_distortion[0x1d]._4_4_)" identifier (argument_list "(iVar6,channel_distortion[0x1d]._4_4_)" ( identifier , (field_expression "channel_distortion[0x1d]._4_4_" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar6 = channel_distortion[0x1d]._0_4_;" (assignment_expression "iVar6 = channel_distortion[0x1d]._0_4_" identifier = (field_expression "channel_distortion[0x1d]._0_4_" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (extraout_v1_09 < channel_distortion[0x1d]._0_4_) {\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }" if (parenthesized_expression "(extraout_v1_09 < channel_distortion[0x1d]._0_4_)" ( (binary_expression "extraout_v1_09 < channel_distortion[0x1d]._0_4_" identifier < (field_expression "channel_distortion[0x1d]._0_4_" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        goto LAB_000707b4;\n      }" { (expression_statement "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000707b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar6 = 1;\n    }" else (compound_statement "{\n      iVar6 = 1;\n    }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 == 3) goto LAB_000706cc;\nLAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }" else (compound_statement "{\n    iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);\n    if (iVar6 == 3) goto LAB_000706cc;\nLAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);\n    if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }\n    uVar30 = (*pcVar26)(7);\n    if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }\n  }" { (expression_statement "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15);" (assignment_expression "iVar6 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" identifier = (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))(iVar15)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x73fc)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x73fc" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar6 == 3) goto LAB_000706cc;" if (parenthesized_expression "(iVar6 == 3)" ( (binary_expression "iVar6 == 3" identifier == number_literal) )) (goto_statement "goto LAB_000706cc;" goto statement_identifier ;)) (labeled_statement "LAB_000704e4:\n    uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);" statement_identifier : (expression_statement "uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7);" (assignment_expression "uVar30 = (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7)" identifier = (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))(7)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;)) (if_statement "if ((int)((ulonglong)uVar30 >> 0x20) == 0) {\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n      if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }" { (expression_statement "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((uint)uVar30 < 2) {\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }" if (parenthesized_expression "((uint)uVar30 < 2)" ( (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar30 = (*pcVar26)(7);\n        if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n        if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }\n      }" { (expression_statement "uVar30 = (*pcVar26)(7);" (assignment_expression "uVar30 = (*pcVar26)(7)" identifier = (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar30 >> 0x20) != 0) goto LAB_000704f8;" if (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000704f8;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((uint)uVar30 < 2) {\n          iVar6 = 1;\n          goto LAB_00070510;\n        }" if (parenthesized_expression "((uint)uVar30 < 2)" ( (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar6 = 1;\n          goto LAB_00070510;\n        }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00070510;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }" else (compound_statement "{\nLAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);\n    }" { (labeled_statement "LAB_000704f8:\n      pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);" statement_identifier : (expression_statement "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;)) }))) (expression_statement "uVar30 = (*pcVar26)(7);" (assignment_expression "uVar30 = (*pcVar26)(7)" identifier = (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)) {\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }\n    else {\n      iVar6 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2))" ( (binary_expression "((int)((ulonglong)uVar30 >> 0x20) == 0) &&\n       (pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)" (parenthesized_expression "((int)((ulonglong)uVar30 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar30 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar30 >> 0x20)" ( (binary_expression "(ulonglong)uVar30 >> 0x20" (cast_expression "(ulonglong)uVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2)" ( (comma_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774), (uint)uVar30 < 2" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" identifier = (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7774)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7774" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) , (binary_expression "(uint)uVar30 < 2" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000707b4:\n      (*pcVar26)(7);\n      iVar6 = extraout_v1_08;\n    }" { (labeled_statement "LAB_000707b4:\n      (*pcVar26)(7);" statement_identifier : (expression_statement "(*pcVar26)(7);" (call_expression "(*pcVar26)(7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar6 = extraout_v1_08;" (assignment_expression "iVar6 = extraout_v1_08" identifier = identifier) ;) }) (else_clause "else {\n      iVar6 = 2;\n    }" else (compound_statement "{\n      iVar6 = 2;\n    }" { (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00070510:\n  exception_00 = (ExceptionInfo *)0x0;" statement_identifier : (expression_statement "exception_00 = (ExceptionInfo *)0x0;" (assignment_expression "exception_00 = (ExceptionInfo *)0x0" identifier = (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "reconstruct_image_00 = (Image *)(channel_distortion + 0x1f);" (assignment_expression "reconstruct_image_00 = (Image *)(channel_distortion + 0x1f)" identifier = (cast_expression "(Image *)(channel_distortion + 0x1f)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion + 0x1f)" ( (binary_expression "channel_distortion + 0x1f" identifier + number_literal) )))) ;) (expression_statement "channel_distortion[0x24]._4_4_ = MagickTrue;" (assignment_expression "channel_distortion[0x24]._4_4_ = MagickTrue" (field_expression "channel_distortion[0x24]._4_4_" (subscript_expression "channel_distortion[0x24]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x1f]._4_4_ = 0;" (assignment_expression "channel_distortion[0x1f]._4_4_ = 0" (field_expression "channel_distortion[0x1f]._4_4_" (subscript_expression "channel_distortion[0x1f]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "channel_distortion[0x1f]._0_4_ = 0;" (assignment_expression "channel_distortion[0x1f]._0_4_ = 0" (field_expression "channel_distortion[0x1f]._0_4_" (subscript_expression "channel_distortion[0x1f]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "channel_distortion[0x23]._0_4_ = 0;" (assignment_expression "channel_distortion[0x23]._0_4_ = 0" (field_expression "channel_distortion[0x23]._0_4_" (subscript_expression "channel_distortion[0x23]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "channel_distortion[0x20]._0_4_ = iVar15;" (assignment_expression "channel_distortion[0x20]._0_4_ = iVar15" (field_expression "channel_distortion[0x20]._0_4_" (subscript_expression "channel_distortion[0x20]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x20]._4_4_ = pdVar18;" (assignment_expression "channel_distortion[0x20]._4_4_ = pdVar18" (field_expression "channel_distortion[0x20]._4_4_" (subscript_expression "channel_distortion[0x20]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x21]._0_4_ = pdVar17;" (assignment_expression "channel_distortion[0x21]._0_4_ = pdVar17" (field_expression "channel_distortion[0x21]._0_4_" (subscript_expression "channel_distortion[0x21]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x21]._4_4_ = uVar21;" (assignment_expression "channel_distortion[0x21]._4_4_ = uVar21" (field_expression "channel_distortion[0x21]._4_4_" (subscript_expression "channel_distortion[0x21]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x22]._0_4_ = uVar4;" (assignment_expression "channel_distortion[0x22]._0_4_ = uVar4" (field_expression "channel_distortion[0x22]._0_4_" (subscript_expression "channel_distortion[0x22]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x22]._4_4_ = uVar5;" (assignment_expression "channel_distortion[0x22]._4_4_ = uVar5" (field_expression "channel_distortion[0x22]._4_4_" (subscript_expression "channel_distortion[0x22]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x23]._4_4_ = uVar8;" (assignment_expression "channel_distortion[0x23]._4_4_ = uVar8" (field_expression "channel_distortion[0x23]._4_4_" (subscript_expression "channel_distortion[0x23]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x24]._0_4_ = uVar23;" (assignment_expression "channel_distortion[0x24]._0_4_ = uVar23" (field_expression "channel_distortion[0x24]._0_4_" (subscript_expression "channel_distortion[0x24]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)\n  ;" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))\n            (*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x7718)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7718)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7718)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7718" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020,reconstruct_image_00,iVar6)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78) + 0x2020" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7f78)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7f78" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "MVar3 = channel_distortion[0x24]._4_4_;" (assignment_expression "MVar3 = channel_distortion[0x24]._4_4_" identifier = (field_expression "channel_distortion[0x24]._4_4_" (subscript_expression "channel_distortion[0x24]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "channel_distortion[0x1d] =\n       (double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_);" (assignment_expression "channel_distortion[0x1d] =\n       (double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_)" (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]) = (cast_expression "(double)CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_)" identifier (argument_list "(channel_distortion[0x1f]._0_4_,channel_distortion[0x1f]._4_4_)" ( (field_expression "channel_distortion[0x1f]._0_4_" (subscript_expression "channel_distortion[0x1f]" identifier [ number_literal ]) . field_identifier) , (field_expression "channel_distortion[0x1f]._4_4_" (subscript_expression "channel_distortion[0x1f]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar5);" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x79bc)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x79bc" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar4);" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))(uVar4)" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x79bc)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x79bc" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (if_statement "if (0.0 <= channel_distortion[0x1d]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x1e] = channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x1e] = -channel_distortion[0x1d];\n  }" if (parenthesized_expression "(0.0 <= channel_distortion[0x1d])" ( (binary_expression "0.0 <= channel_distortion[0x1d]" number_literal <= (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ])) )) (compound_statement "{\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);\n    channel_distortion[0x1e] = channel_distortion[0x1d];\n  }" { (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "channel_distortion[0x1e] = channel_distortion[0x1d];" (assignment_expression "channel_distortion[0x1e] = channel_distortion[0x1d]" (subscript_expression "channel_distortion[0x1e]" identifier [ number_literal ]) = (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x1e] = -channel_distortion[0x1d];\n  }" else (compound_statement "{\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);\n    channel_distortion[0x1e] = -channel_distortion[0x1d];\n  }" { (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78);" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1a78" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "channel_distortion[0x1e] = -channel_distortion[0x1d];" (assignment_expression "channel_distortion[0x1e] = -channel_distortion[0x1d]" (subscript_expression "channel_distortion[0x1e]" identifier [ number_literal ]) = (unary_expression "-channel_distortion[0x1d]" - (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]))) ;) }))) (if_statement "if (*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x1e]) {\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d];\n  }\n  else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x1e])" ( (binary_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=\n      channel_distortion[0x1e]" (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))) <= (subscript_expression "channel_distortion[0x1e]" identifier [ number_literal ])) )) (compound_statement "{\n    dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d];\n  }" { (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d];" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d]" identifier = (binary_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438) /\n             channel_distortion[0x1d]" (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))) / (subscript_expression "channel_distortion[0x1d]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);\n  }" else (compound_statement "{\n    dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);\n  }" { (expression_statement "dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8);" (assignment_expression "dVar28 = dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" identifier = (binary_expression "dVar28 / *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x13f8" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar18 = pdVar17;" (assignment_expression "pdVar18 = pdVar17" identifier = identifier) ;) (do_statement "do {\n    pdVar9 = pdVar18 + 1;\n    *pdVar18 = *pdVar18 * dVar28;\n    pdVar18 = pdVar9;\n  } while (pdVar17 + 0x41 != pdVar9);" do (compound_statement "{\n    pdVar9 = pdVar18 + 1;\n    *pdVar18 = *pdVar18 * dVar28;\n    pdVar18 = pdVar9;\n  }" { (expression_statement "pdVar9 = pdVar18 + 1;" (assignment_expression "pdVar9 = pdVar18 + 1" identifier = (binary_expression "pdVar18 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar18 = *pdVar18 * dVar28;" (assignment_expression "*pdVar18 = *pdVar18 * dVar28" (pointer_expression "*pdVar18" * identifier) = (binary_expression "*pdVar18 * dVar28" (pointer_expression "*pdVar18" * identifier) * identifier)) ;) (expression_statement "pdVar18 = pdVar9;" (assignment_expression "pdVar18 = pdVar9" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar17 + 0x41 != pdVar9)" ( (binary_expression "pdVar17 + 0x41 != pdVar9" (binary_expression "pdVar17 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "pdVar18 = (double *)0x0;" (assignment_expression "pdVar18 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(iVar15 + 0x2c0)) {\n    exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);\n    reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);\n    pEVar12 = exception_00;\n    do {\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    } while ((Image *)pEVar12 != reconstruct_image_00);\n    if (pdVar18 != (double *)0x0) {\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar15 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar15 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar15 + 0x2c0)" * (cast_expression "(int *)(iVar15 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c0)" ( (binary_expression "iVar15 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);\n    reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);\n    pEVar12 = exception_00;\n    do {\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    } while ((Image *)pEVar12 != reconstruct_image_00);\n    if (pdVar18 != (double *)0x0) {\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" { (expression_statement "exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0);" (assignment_expression "exception_00 = *(ExceptionInfo **)(iVar15 + 0x2d0)" identifier = (pointer_expression "*(ExceptionInfo **)(iVar15 + 0x2d0)" * (cast_expression "(ExceptionInfo **)(iVar15 + 0x2d0)" ( (type_descriptor "ExceptionInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x2d0)" ( (binary_expression "iVar15 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3);" (assignment_expression "reconstruct_image_00 = (Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3)" identifier = (cast_expression "(Image *)(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3)" ( (binary_expression "&exception_00->severity + *(int *)(iVar15 + 0x2c0) * 3" (pointer_expression "&exception_00->severity" & (field_expression "exception_00->severity" identifier -> field_identifier)) + (binary_expression "*(int *)(iVar15 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar15 + 0x2c0)" * (cast_expression "(int *)(iVar15 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c0)" ( (binary_expression "iVar15 + 0x2c0" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "pEVar12 = exception_00;" (assignment_expression "pEVar12 = exception_00" identifier = identifier) ;) (do_statement "do {\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    } while ((Image *)pEVar12 != reconstruct_image_00);" do (compound_statement "{\n      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }\n      pEVar12 = (ExceptionInfo *)&pEVar12->description;\n    }" { (if_statement "if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }" if (parenthesized_expression "(((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0)" ( (binary_expression "((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0" (parenthesized_expression "((&exception_00->error_number)[pEVar12->severity * 3] & 2U)" ( (binary_expression "(&exception_00->error_number)[pEVar12->severity * 3] & 2U" (subscript_expression "(&exception_00->error_number)[pEVar12->severity * 3]" (parenthesized_expression "(&exception_00->error_number)" ( (pointer_expression "&exception_00->error_number" & (field_expression "exception_00->error_number" identifier -> field_identifier)) )) [ (binary_expression "pEVar12->severity * 3" (field_expression "pEVar12->severity" identifier -> field_identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        pdVar18 = (double *)((int)pdVar18 + 1);\n      }" { (expression_statement "pdVar18 = (double *)((int)pdVar18 + 1);" (assignment_expression "pdVar18 = (double *)((int)pdVar18 + 1)" identifier = (cast_expression "(double *)((int)pdVar18 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 1)" ( (binary_expression "(int)pdVar18 + 1" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pEVar12 = (ExceptionInfo *)&pEVar12->description;" (assignment_expression "pEVar12 = (ExceptionInfo *)&pEVar12->description" identifier = (cast_expression "(ExceptionInfo *)&pEVar12->description" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar12->description" & (field_expression "pEVar12->description" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "((Image *)pEVar12 != reconstruct_image_00)" ( (binary_expression "(Image *)pEVar12 != reconstruct_image_00" (cast_expression "(Image *)pEVar12" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (if_statement "if (pdVar18 != (double *)0x0) {\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }" if (parenthesized_expression "(pdVar18 != (double *)0x0)" ( (binary_expression "pdVar18 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dVar28 = (double)(int)pdVar18;\n      if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }\n      goto LAB_00070664;\n    }" { (expression_statement "dVar28 = (double)(int)pdVar18;" (assignment_expression "dVar28 = (double)(int)pdVar18" identifier = (cast_expression "(double)(int)pdVar18" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar18 < 0) {\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }" if (parenthesized_expression "((int)pdVar18 < 0)" ( (binary_expression "(int)pdVar18 < 0" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);\n      }" { (expression_statement "dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418);" (assignment_expression "dVar28 = dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418)" identifier = (binary_expression "dVar28 + *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1418" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_00070664;" goto statement_identifier ;) })) })) (expression_statement "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438);" (assignment_expression "dVar28 = *(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" * (cast_expression "(double *)(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438)" ( (binary_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0) + 0x1438" (pointer_expression "*(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" * (cast_expression "(int *)(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7fd0)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7fd0" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_00070664:\n  dVar28 = pdVar17[0x40] / dVar28;" statement_identifier : (expression_statement "dVar28 = pdVar17[0x40] / dVar28;" (assignment_expression "dVar28 = pdVar17[0x40] / dVar28" identifier = (binary_expression "pdVar17[0x40] / dVar28" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) / identifier)) ;)) (expression_statement "pdVar17[0x40] = dVar28;" (assignment_expression "pdVar17[0x40] = dVar28" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar29 = SQRT(dVar28);" (assignment_expression "dVar29 = SQRT(dVar28)" identifier = (call_expression "SQRT(dVar28)" identifier (argument_list "(dVar28)" ( identifier )))) ;) (if_statement "if (dVar28 < 0.0) {\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();\n  }" if (parenthesized_expression "(dVar28 < 0.0)" ( (binary_expression "dVar28 < 0.0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();\n  }" { (expression_statement "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))();" (call_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))()" (parenthesized_expression "(**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430))" ( (pointer_expression "**(code **)(channel_distortion[0x1c]._0_4_ + -0x7430)" * (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x7430)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x7430)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x7430)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x7430" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pIVar13 = (Image *)*piVar24;" (assignment_expression "pIVar13 = (Image *)*piVar24" identifier = (cast_expression "(Image *)*piVar24" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "pdVar17[0x40] = dVar29;" (assignment_expression "pdVar17[0x40] = dVar29" (subscript_expression "pdVar17[0x40]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (channel_distortion[0x25]._4_4_ == pIVar13) {\n    return MVar3;\n  }" if (parenthesized_expression "(channel_distortion[0x25]._4_4_ == pIVar13)" ( (binary_expression "channel_distortion[0x25]._4_4_ == pIVar13" (field_expression "channel_distortion[0x25]._4_4_" (subscript_expression "channel_distortion[0x25]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n    return MVar3;\n  }" { (return_statement "return MVar3;" return identifier ;) })) (expression_statement "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x784c);" (assignment_expression "pcVar26 = *(code **)(channel_distortion[0x1c]._0_4_ + -0x784c)" identifier = (pointer_expression "*(code **)(channel_distortion[0x1c]._0_4_ + -0x784c)" * (cast_expression "(code **)(channel_distortion[0x1c]._0_4_ + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(channel_distortion[0x1c]._0_4_ + -0x784c)" ( (binary_expression "channel_distortion[0x1c]._0_4_ + -0x784c" (field_expression "channel_distortion[0x1c]._0_4_" (subscript_expression "channel_distortion[0x1c]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (expression_statement "pcVar27 = GetRootMeanSquaredDistortion;" (assignment_expression "pcVar27 = GetRootMeanSquaredDistortion" identifier = identifier) ;) (expression_statement "pIVar13 = channel_distortion[0x25]._4_4_;" (assignment_expression "pIVar13 = channel_distortion[0x25]._4_4_" identifier = (field_expression "channel_distortion[0x25]._4_4_" (subscript_expression "channel_distortion[0x25]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "channel_distortion[0x14]._0_4_ = pcVar26 + 0x340084;" (assignment_expression "channel_distortion[0x14]._0_4_ = pcVar26 + 0x340084" (field_expression "channel_distortion[0x14]._0_4_" (subscript_expression "channel_distortion[0x14]" identifier [ number_literal ]) . field_identifier) = (binary_expression "pcVar26 + 0x340084" identifier + number_literal)) ;) (expression_statement "dVar28 = 0.0;" (assignment_expression "dVar28 = 0.0" identifier = number_literal) ;) (expression_statement "channel_distortion[0x16]._4_4_ = iVar15;" (assignment_expression "channel_distortion[0x16]._4_4_ = iVar15" (field_expression "channel_distortion[0x16]._4_4_" (subscript_expression "channel_distortion[0x16]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x17]._0_4_ = pdVar17;" (assignment_expression "channel_distortion[0x17]._0_4_ = pdVar17" (field_expression "channel_distortion[0x17]._0_4_" (subscript_expression "channel_distortion[0x17]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x17]._4_4_ = pcVar27;" (assignment_expression "channel_distortion[0x17]._4_4_ = pcVar27" (field_expression "channel_distortion[0x17]._4_4_" (subscript_expression "channel_distortion[0x17]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "channel_distortion[0x18] = dVar29;" (assignment_expression "channel_distortion[0x18] = dVar29" (subscript_expression "channel_distortion[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "channel_distortion[0x15]._4_4_ =\n       GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00);" (assignment_expression "channel_distortion[0x15]._4_4_ =\n       GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00)" (field_expression "channel_distortion[0x15]._4_4_" (subscript_expression "channel_distortion[0x15]" identifier [ number_literal ]) . field_identifier) = (call_expression "GetMeanSquaredDistortion(pIVar13,reconstruct_image_00,pdVar18,exception_00)" identifier (argument_list "(pIVar13,reconstruct_image_00,pdVar18,exception_00)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pdVar17 = pdVar18;" (assignment_expression "pdVar17 = pdVar18" identifier = identifier) ;) (expression_statement "pcVar26 = channel_distortion[0x14]._0_4_;" (assignment_expression "pcVar26 = channel_distortion[0x14]._0_4_" identifier = (field_expression "channel_distortion[0x14]._0_4_" (subscript_expression "channel_distortion[0x14]" identifier [ number_literal ]) . field_identifier)) ;) (do_statement "do {\n    dVar29 = SQRT(*pdVar17);\n    if (*pdVar17 < dVar28) {\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }\n    pdVar9 = pdVar17 + 1;\n    *pdVar17 = dVar29;\n    pdVar17 = pdVar9;\n  } while (pdVar9 != pdVar18 + 0x41);" do (compound_statement "{\n    dVar29 = SQRT(*pdVar17);\n    if (*pdVar17 < dVar28) {\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }\n    pdVar9 = pdVar17 + 1;\n    *pdVar17 = dVar29;\n    pdVar17 = pdVar9;\n  }" { (expression_statement "dVar29 = SQRT(*pdVar17);" (assignment_expression "dVar29 = SQRT(*pdVar17)" identifier = (call_expression "SQRT(*pdVar17)" identifier (argument_list "(*pdVar17)" ( (pointer_expression "*pdVar17" * identifier) )))) ;) (if_statement "if (*pdVar17 < dVar28) {\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }" if (parenthesized_expression "(*pdVar17 < dVar28)" ( (binary_expression "*pdVar17 < dVar28" (pointer_expression "*pdVar17" * identifier) < identifier) )) (compound_statement "{\n      (**(code **)(pcVar26 + -0x7430))();\n      pcVar26 = channel_distortion[0x14]._0_4_;\n    }" { (expression_statement "(**(code **)(pcVar26 + -0x7430))();" (call_expression "(**(code **)(pcVar26 + -0x7430))()" (parenthesized_expression "(**(code **)(pcVar26 + -0x7430))" ( (pointer_expression "**(code **)(pcVar26 + -0x7430)" * (pointer_expression "*(code **)(pcVar26 + -0x7430)" * (cast_expression "(code **)(pcVar26 + -0x7430)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + -0x7430)" ( (binary_expression "pcVar26 + -0x7430" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar26 = channel_distortion[0x14]._0_4_;" (assignment_expression "pcVar26 = channel_distortion[0x14]._0_4_" identifier = (field_expression "channel_distortion[0x14]._0_4_" (subscript_expression "channel_distortion[0x14]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "pdVar9 = pdVar17 + 1;" (assignment_expression "pdVar9 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar17 = dVar29;" (assignment_expression "*pdVar17 = dVar29" (pointer_expression "*pdVar17" * identifier) = identifier) ;) (expression_statement "pdVar17 = pdVar9;" (assignment_expression "pdVar17 = pdVar9" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar9 != pdVar18 + 0x41)" ( (binary_expression "pdVar9 != pdVar18 + 0x41" identifier != (binary_expression "pdVar18 + 0x41" identifier + number_literal)) )) ;) (return_statement "return channel_distortion[0x15]._4_4_;" return (field_expression "channel_distortion[0x15]._4_4_" (subscript_expression "channel_distortion[0x15]" identifier [ number_literal ]) . field_identifier) ;) })))
(translation_unit "undefined4 FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined4 FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,int param_2,double *param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "double *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "double *pdVar11;" primitive_type (pointer_declarator "*pdVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "double *extraout_v1_04;" primitive_type (pointer_declarator "*extraout_v1_04" * identifier) ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int extraout_v1_07;" primitive_type identifier ;) (declaration "int extraout_v1_08;" primitive_type identifier ;) (declaration "int extraout_v1_09;" primitive_type identifier ;) (declaration "int extraout_v1_10;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "double dStack_168;" primitive_type identifier ;) (declaration "undefined4 uStack_160;" type_identifier identifier ;) (declaration "undefined4 uStack_15c;" type_identifier identifier ;) (declaration "int iStack_158;" primitive_type identifier ;) (declaration "int *piStack_154;" primitive_type (pointer_declarator "*piStack_154" * identifier) ;) (declaration "double *pdStack_150;" primitive_type (pointer_declarator "*pdStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "undefined4 uStack_148;" type_identifier identifier ;) (declaration "undefined4 uStack_144;" type_identifier identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "undefined4 uStack_128;" type_identifier identifier ;) (declaration "int *piStack_124;" primitive_type (pointer_declarator "*piStack_124" * identifier) ;) (declaration "uint uStack_120;" type_identifier identifier ;) (declaration "int *piStack_11c;" primitive_type (pointer_declarator "*piStack_11c" * identifier) ;) (declaration "uint uStack_118;" type_identifier identifier ;) (declaration "int *piStack_114;" primitive_type (pointer_declarator "*piStack_114" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "int iStack_108;" primitive_type identifier ;) (declaration "code *pcStack_104;" type_identifier (pointer_declarator "*pcStack_104" * identifier) ;) (declaration "undefined *puStack_e8;" type_identifier (pointer_declarator "*puStack_e8" * identifier) ;) (declaration "double *pdStack_dc;" primitive_type (pointer_declarator "*pdStack_dc" * identifier) ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "undefined4 uStack_c4;" type_identifier identifier ;) (declaration "uint uStack_c0;" type_identifier identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "int iStack_b0;" primitive_type identifier ;) (declaration "double *pdStack_ac;" primitive_type (pointer_declarator "*pdStack_ac" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "undefined4 uStack_a4;" type_identifier identifier ;) (declaration "uint uStack_a0;" type_identifier identifier ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "uint uStack_98;" type_identifier identifier ;) (declaration "undefined4 uStack_94;" type_identifier identifier ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "double *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c))" ( (binary_expression "*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(param_2 + 0x1c)" * (cast_expression "(uint *)(param_2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }" { (expression_statement "uVar15 = *(uint *)(param_2 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(param_2 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x1c)" * (cast_expression "(uint *)(param_2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar10 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x18)" identifier = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18))" ( (binary_expression "*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }" { (expression_statement "uVar10 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar10 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);" (assignment_expression "uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4)" identifier = (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" ( (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" * (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_4)" ( identifier , identifier )))) ;) (expression_statement "uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);" (assignment_expression "uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4)" identifier = (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" ( (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" * (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_4)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3))))" ( (binary_expression "((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))" (parenthesized_expression "((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      )" ( (binary_expression "(iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (parenthesized_expression "(iVar7 == 4)" ( (binary_expression "iVar7 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" ( (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))" ( (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3))" ( (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (binary_expression "iVar7 == 4" identifier == number_literal) || (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" ( (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" identifier = (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" ( (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" * (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = uVar15 + 0x3f;\n    }" { (expression_statement "uVar18 = uVar15 + 0x3f;" (assignment_expression "uVar18 = uVar15 + 0x3f" identifier = (binary_expression "uVar15 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar7 = (int)uVar18 >> 6;" (assignment_expression "iVar7 = (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 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < iVar7)" ( (binary_expression "extraout_v1 < iVar7" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (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)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar15 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar15 < 0x80;" (assignment_expression "bVar1 = (int)uVar15 < 0x80" identifier = (binary_expression "(int)uVar15 < 0x80" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 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 *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_01 < iVar7) goto LAB_000700d8;" if (parenthesized_expression "(extraout_v1_01 < iVar7)" ( (binary_expression "extraout_v1_01 < iVar7" identifier < identifier) )) (goto_statement "goto LAB_000700d8;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar7 = 1;\n    }" else (compound_statement "{\n      iVar7 = 1;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" else (compound_statement "{\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" { (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" identifier = (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }" { (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" identifier = (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0006fe50;" goto statement_identifier ;) })) })) (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" identifier = (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }" { (labeled_statement "LAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" statement_identifier : (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar7 = extraout_v1_00;" (assignment_expression "iVar7 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n      iVar7 = 2;\n    }" else (compound_statement "{\n      iVar7 = 2;\n    }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0006fe50:\n  piVar19 = (int *)0x0;" statement_identifier : (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piVar13 = &local_60;" (assignment_expression "piVar13 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (expression_statement "local_34 = 1;" (assignment_expression "local_34 = 1" identifier = number_literal) ;) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" identifier = identifier) ;) (expression_statement "local_54 = param_2;" (assignment_expression "local_54 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (expression_statement "local_4c = param_4;" (assignment_expression "local_4c = param_4" identifier = identifier) ;) (expression_statement "local_48 = uVar5;" (assignment_expression "local_48 = uVar5" identifier = identifier) ;) (expression_statement "local_44 = uVar6;" (assignment_expression "local_44 = uVar6" identifier = identifier) ;) (expression_statement "local_3c = uVar10;" (assignment_expression "local_3c = uVar10" identifier = identifier) ;) (expression_statement "local_38 = uVar15;" (assignment_expression "local_38 = uVar15" identifier = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" ( (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" * (cast_expression "(code *)PTR_GOMP_parallel_003a9198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7)" ( (binary_expression "PTR_LAB_003a8938 + 0x2948" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "uVar20 = local_34;" (assignment_expression "uVar20 = local_34" identifier = identifier) ;) (expression_statement "uVar3 = uStack_5c;" (assignment_expression "uVar3 = uStack_5c" identifier = identifier) ;) (expression_statement "iVar7 = local_60;" (assignment_expression "iVar7 = local_60" identifier = identifier) ;) (expression_statement "dVar26 = (double)CONCAT44(local_60,uStack_5c);" (assignment_expression "dVar26 = (double)CONCAT44(local_60,uStack_5c)" identifier = (cast_expression "(double)CONCAT44(local_60,uStack_5c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(local_60,uStack_5c)" identifier (argument_list "(local_60,uStack_5c)" ( identifier , identifier ))))) ;) (expression_statement "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);" (call_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003a8ef4" * (cast_expression "(code *)PTR_DestroyCacheView_003a8ef4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);" (call_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003a8ef4" * (cast_expression "(code *)PTR_DestroyCacheView_003a8ef4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" if (parenthesized_expression "(0.0 <= dVar26)" ( (binary_expression "0.0 <= dVar26" number_literal <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "local_68 = dVar26;" (assignment_expression "local_68 = dVar26" identifier = identifier) ;) }) (else_clause "else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" else (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a78" identifier + number_literal) ))))) ;) (expression_statement "local_68 = -(double)CONCAT44(iVar7,uVar3);" (assignment_expression "local_68 = -(double)CONCAT44(iVar7,uVar3)" identifier = (unary_expression "-(double)CONCAT44(iVar7,uVar3)" - (cast_expression "(double)CONCAT44(iVar7,uVar3)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar7,uVar3)" identifier (argument_list "(iVar7,uVar3)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68)" ( (binary_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68" (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26" identifier = (binary_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26" (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" else (compound_statement "{\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" { (expression_statement "dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (binary_expression "dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier / (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) )))))) ;) }))) (expression_statement "pdVar16 = param_3;" (assignment_expression "pdVar16 = param_3" identifier = identifier) ;) (do_statement "do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);" do (compound_statement "{\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  }" { (expression_statement "pdVar17 = pdVar16 + 1;" (assignment_expression "pdVar17 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar16 = *pdVar16 * dVar27;" (assignment_expression "*pdVar16 = *pdVar16 * dVar27" (pointer_expression "*pdVar16" * identifier) = (binary_expression "*pdVar16 * dVar27" (pointer_expression "*pdVar16" * identifier) * identifier)) ;) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) }) while (parenthesized_expression "(param_3 + 0x41 != pdVar17)" ( (binary_expression "param_3 + 0x41 != pdVar17" (binary_expression "param_3 + 0x41" identifier + number_literal) != identifier) )) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c0) < 1)" ( (binary_expression "*(int *)(param_1 + 0x2c0) < 1" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }" { (labeled_statement "LAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" statement_identifier : (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" else (compound_statement "{\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" { (expression_statement "piVar19 = *(int **)(param_1 + 0x2d0);" (assignment_expression "piVar19 = *(int **)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int **)(param_1 + 0x2d0)" * (cast_expression "(int **)(param_1 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;" (assignment_expression "piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3" identifier = (binary_expression "piVar19 + *(int *)(param_1 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 3" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "piVar22 = piVar19;" (assignment_expression "piVar22 = piVar19" identifier = identifier) ;) (do_statement "do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);" do (compound_statement "{\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    }" { (if_statement "if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }" if (parenthesized_expression "((piVar19[*piVar22 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar19[*piVar22 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar19[*piVar22 * 3 + 1] & 2U)" ( (binary_expression "piVar19[*piVar22 * 3 + 1] & 2U" (subscript_expression "piVar19[*piVar22 * 3 + 1]" identifier [ (binary_expression "*piVar22 * 3 + 1" (binary_expression "*piVar22 * 3" (pointer_expression "*piVar22" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar7 = iVar7 + 1;\n      }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "piVar22 = piVar22 + 3;" (assignment_expression "piVar22 = piVar22 + 3" identifier = (binary_expression "piVar22 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar22 != piVar13)" ( (binary_expression "piVar22 != piVar13" identifier != identifier) )) ;) (if_statement "if (iVar7 == 0) goto LAB_0007006c;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007006c;" goto statement_identifier ;)) (expression_statement "dVar26 = (double)iVar7;" (assignment_expression "dVar26 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }" { (expression_statement "dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) }))) (expression_statement "iVar12 = *(int *)puVar2;" (assignment_expression "iVar12 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "param_3[0x40] = param_3[0x40] / dVar26;" (assignment_expression "param_3[0x40] = param_3[0x40] / dVar26" (subscript_expression "param_3[0x40]" identifier [ number_literal ]) = (binary_expression "param_3[0x40] / dVar26" (subscript_expression "param_3[0x40]" identifier [ number_literal ]) / identifier)) ;) (if_statement "if (local_2c == iVar12) {\n    return uVar20;\n  }" if (parenthesized_expression "(local_2c == iVar12)" ( (binary_expression "local_2c == iVar12" identifier == identifier) )) (compound_statement "{\n    return uVar20;\n  }" { (return_statement "return uVar20;" return identifier ;) })) (expression_statement "pcVar24 = FUN_0007013c;" (assignment_expression "pcVar24 = FUN_0007013c" identifier = identifier) ;) (expression_statement "iVar12 = local_2c;" (assignment_expression "iVar12 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar23 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_e8 = puVar23 + 0x340774;" (assignment_expression "puStack_e8 = puVar23 + 0x340774" identifier = (binary_expression "puVar23 + 0x340774" identifier + number_literal)) ;) (expression_statement "uStack_a4 = uVar20;" (assignment_expression "uStack_a4 = uVar20" identifier = identifier) ;) (expression_statement "puStack_a8 = puVar2;" (assignment_expression "puStack_a8 = puVar2" identifier = identifier) ;) (expression_statement "piVar22 = *(int **)(puVar23 + 0x3390f4);" (assignment_expression "piVar22 = *(int **)(puVar23 + 0x3390f4)" identifier = (pointer_expression "*(int **)(puVar23 + 0x3390f4)" * (cast_expression "(int **)(puVar23 + 0x3390f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x3390f4)" ( (binary_expression "puVar23 + 0x3390f4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar12 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar12 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7])" ( (binary_expression "*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]" (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar13[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar13[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar18 = piVar13[7];\n  }" { (expression_statement "uVar18 = piVar13[7];" (assignment_expression "uVar18 = piVar13[7]" identifier = (subscript_expression "piVar13[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar8 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar8 = *(uint *)(iVar12 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6])" ( (binary_expression "*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar13[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar13[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar8 = piVar13[6];\n  }" { (expression_statement "uVar8 = piVar13[6];" (assignment_expression "uVar8 = piVar13[6]" identifier = (subscript_expression "piVar13[6]" identifier [ number_literal ])) ;) })) (expression_statement "iStack_b4 = *piVar22;" (assignment_expression "iStack_b4 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "iStack_b0 = param_1;" (assignment_expression "iStack_b0 = param_1" identifier = identifier) ;) (expression_statement "pdStack_ac = param_3;" (assignment_expression "pdStack_ac = param_3" identifier = identifier) ;) (expression_statement "uStack_a0 = uVar15;" (assignment_expression "uStack_a0 = uVar15" identifier = identifier) ;) (expression_statement "uStack_9c = param_4;" (assignment_expression "uStack_9c = param_4" identifier = identifier) ;) (expression_statement "uStack_98 = uVar10;" (assignment_expression "uStack_98 = uVar10" identifier = identifier) ;) (expression_statement "uStack_94 = uVar5;" (assignment_expression "uStack_94 = uVar5" identifier = identifier) ;) (expression_statement "uStack_90 = uVar6;" (assignment_expression "uStack_90 = uVar6" identifier = identifier) ;) (expression_statement "pcStack_8c = pcVar24;" (assignment_expression "pcStack_8c = pcVar24" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(puVar23 + 0x339618))();" (assignment_expression "uVar5 = (**(code **)(puVar23 + 0x339618))()" identifier = (call_expression "(**(code **)(puVar23 + 0x339618))()" (parenthesized_expression "(**(code **)(puVar23 + 0x339618))" ( (pointer_expression "**(code **)(puVar23 + 0x339618)" * (pointer_expression "*(code **)(puVar23 + 0x339618)" * (cast_expression "(code **)(puVar23 + 0x339618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x339618)" ( (binary_expression "puVar23 + 0x339618" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);" (assignment_expression "uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x715c))" ( (pointer_expression "**(code **)(puStack_e8 + -0x715c)" * (pointer_expression "*(code **)(puStack_e8 + -0x715c)" * (cast_expression "(code **)(puStack_e8 + -0x715c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x715c)" ( (binary_expression "puStack_e8 + -0x715c" identifier + number_literal) ))))) )) (argument_list "(piVar13,piVar19)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" if (parenthesized_expression "(((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))))" ( (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))" ( (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" ( (binary_expression "iVar9 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))" ( (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))" ( (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (binary_expression "iVar9 == 4" identifier == number_literal) || (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" ( (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" * (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" * (cast_expression "(code **)(puStack_e8 + -0x73fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x73fc)" ( (binary_expression "puStack_e8 + -0x73fc" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar9 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" { (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar15 = uVar18;" (assignment_expression "uVar15 = uVar18" identifier = identifier) ;) (if_statement "if ((int)uVar18 < 0) {\n      uVar15 = 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      uVar15 = uVar18 + 0x3f;\n    }" { (expression_statement "uVar15 = uVar18 + 0x3f;" (assignment_expression "uVar15 = uVar18 + 0x3f" identifier = (binary_expression "uVar18 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar16 = (double *)((int)uVar15 >> 6);" (assignment_expression "pdVar16 = (double *)((int)uVar15 >> 6)" identifier = (cast_expression "(double *)((int)uVar15 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)uVar15 >> 6)" ( (binary_expression "(int)uVar15 >> 6" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_03 < (int)pdVar16)" ( (binary_expression "extraout_v1_03 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }" { (expression_statement "pdStack_dc = pdVar16;" (assignment_expression "pdStack_dc = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" 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)) ;) (expression_statement "pdVar16 = pdStack_dc;" (assignment_expression "pdVar16 = pdStack_dc" 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_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\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_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }" { (expression_statement "pdStack_dc = pdVar16;" (assignment_expression "pdStack_dc = pdVar16" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar16 = pdStack_dc;" (assignment_expression "pdVar16 = pdStack_dc" identifier = identifier) ;) (if_statement "if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }" if (parenthesized_expression "(extraout_v1_05 < (int)pdStack_dc)" ( (binary_expression "extraout_v1_05 < (int)pdStack_dc" identifier < (cast_expression "(int)pdStack_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }" { (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000703a0;" 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    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" else (compound_statement "{\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" { (expression_statement "uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);" (assignment_expression "uVar28 = (**(code **)(puStack_e8 + -0x7774))(7)" identifier = (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7774)" * (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }" { (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" { (expression_statement "uVar28 = (*pcVar24)(7);" (assignment_expression "uVar28 = (*pcVar24)(7)" identifier = (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_00070230;" goto statement_identifier ;)) (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\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_00070248;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" else (compound_statement "{\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" { (labeled_statement "LAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);" statement_identifier : (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar28 = (*pcVar24)(7);" (assignment_expression "uVar28 = (*pcVar24)(7)" identifier = (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)" ( (comma_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x7774)" * (cast_expression "(code **)(puStack_e8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7774)" ( (binary_expression "puStack_e8 + -0x7774" identifier + number_literal) ))))) , (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }" { (labeled_statement "LAB_000703a0:\n      (*pcVar24)(7);" statement_identifier : (expression_statement "(*pcVar24)(7);" (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "pdVar16 = extraout_v1_04;" (assignment_expression "pdVar16 = extraout_v1_04" 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_00070248:\n  uVar20 = 0;" statement_identifier : (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;)) (expression_statement "piVar14 = &iStack_d8;" (assignment_expression "piVar14 = &iStack_d8" identifier = (pointer_expression "&iStack_d8" & identifier)) ;) (expression_statement "uStack_b8 = 1;" (assignment_expression "uStack_b8 = 1" identifier = number_literal) ;) (expression_statement "iStack_d8 = iVar12;" (assignment_expression "iStack_d8 = iVar12" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar13;" (assignment_expression "piStack_d4 = piVar13" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar7;" (assignment_expression "iStack_d0 = iVar7" identifier = identifier) ;) (expression_statement "piStack_cc = piVar19;" (assignment_expression "piStack_cc = piVar19" identifier = identifier) ;) (expression_statement "uStack_c8 = uVar5;" (assignment_expression "uStack_c8 = uVar5" identifier = identifier) ;) (expression_statement "uStack_c4 = uVar6;" (assignment_expression "uStack_c4 = uVar6" identifier = identifier) ;) (expression_statement "uStack_c0 = uVar8;" (assignment_expression "uStack_c0 = uVar8" identifier = identifier) ;) (expression_statement "uStack_bc = uVar18;" (assignment_expression "uStack_bc = uVar18" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);" (call_expression "(**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7718))" ( (pointer_expression "**(code **)(puStack_e8 + -0x7718)" * (pointer_expression "*(code **)(puStack_e8 + -0x7718)" * (cast_expression "(code **)(puStack_e8 + -0x7718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x7718)" ( (binary_expression "puStack_e8 + -0x7718" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0)" ( (binary_expression "*(int *)(puStack_e8 + -0x7f78) + 0x2dc0" (pointer_expression "*(int *)(puStack_e8 + -0x7f78)" * (cast_expression "(int *)(puStack_e8 + -0x7f78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_e8 + -0x7f78)" ( (binary_expression "puStack_e8 + -0x7f78" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_e8 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_e8 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x79bc)" * (pointer_expression "*(code **)(puStack_e8 + -0x79bc)" * (cast_expression "(code **)(puStack_e8 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x79bc)" ( (binary_expression "puStack_e8 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_e8 + -0x79bc))(uVar5);" (call_expression "(**(code **)(puStack_e8 + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x79bc))" ( (pointer_expression "**(code **)(puStack_e8 + -0x79bc)" * (pointer_expression "*(code **)(puStack_e8 + -0x79bc)" * (cast_expression "(code **)(puStack_e8 + -0x79bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x79bc)" ( (binary_expression "puStack_e8 + -0x79bc" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }" if (parenthesized_expression "(iStack_b4 == *piVar22)" ( (binary_expression "iStack_b4 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x784c);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_e8 + -0x784c)" * (cast_expression "(code **)(puStack_e8 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_e8 + -0x784c)" ( (binary_expression "puStack_e8 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = FUN_00070404;" (assignment_expression "pcVar25 = FUN_00070404" identifier = identifier) ;) (expression_statement "iVar12 = iStack_b4;" (assignment_expression "iVar12 = iStack_b4" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = *(int **)(pcVar24 + 0x338e2c);" (assignment_expression "piVar21 = *(int **)(pcVar24 + 0x338e2c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x338e2c)" * (cast_expression "(int **)(pcVar24 + 0x338e2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338e2c)" ( (binary_expression "pcVar24 + 0x338e2c" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(iVar12 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar12 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7])" ( (binary_expression "*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]" (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) <= (cast_expression "(uint)piVar14[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar14[7]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar15 = piVar14[7];\n  }" { (expression_statement "uVar15 = piVar14[7];" (assignment_expression "uVar15 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) })) (expression_statement "uVar10 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar10 = *(uint *)(iVar12 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6])" ( (binary_expression "*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) <= (cast_expression "(uint)piVar14[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar14[6]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar10 = piVar14[6];\n  }" { (expression_statement "uVar10 = piVar14[6];" (assignment_expression "uVar10 = piVar14[6]" identifier = (subscript_expression "piVar14[6]" identifier [ number_literal ])) ;) })) (expression_statement "iStack_12c = *piVar21;" (assignment_expression "iStack_12c = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "uStack_128 = uVar3;" (assignment_expression "uStack_128 = uVar3" identifier = identifier) ;) (expression_statement "piStack_124 = piVar13;" (assignment_expression "piStack_124 = piVar13" identifier = identifier) ;) (expression_statement "uStack_120 = uVar18;" (assignment_expression "uStack_120 = uVar18" identifier = identifier) ;) (expression_statement "piStack_11c = piVar19;" (assignment_expression "piStack_11c = piVar19" identifier = identifier) ;) (expression_statement "uStack_118 = uVar8;" (assignment_expression "uStack_118 = uVar8" identifier = identifier) ;) (expression_statement "piStack_114 = piVar22;" (assignment_expression "piStack_114 = piVar22" identifier = identifier) ;) (expression_statement "uStack_110 = uVar5;" (assignment_expression "uStack_110 = uVar5" identifier = identifier) ;) (expression_statement "uStack_10c = uVar6;" (assignment_expression "uStack_10c = uVar6" identifier = identifier) ;) (expression_statement "iStack_108 = iVar7;" (assignment_expression "iStack_108 = iVar7" identifier = identifier) ;) (expression_statement "pcStack_104 = pcVar25;" (assignment_expression "pcStack_104 = pcVar25" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(pcVar24 + 0x339350))();" (assignment_expression "uVar5 = (**(code **)(pcVar24 + 0x339350))()" identifier = (call_expression "(**(code **)(pcVar24 + 0x339350))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x339350))" ( (pointer_expression "**(code **)(pcVar24 + 0x339350)" * (pointer_expression "*(code **)(pcVar24 + 0x339350)" * (cast_expression "(code **)(pcVar24 + 0x339350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x339350)" ( (binary_expression "pcVar24 + 0x339350" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);" (assignment_expression "uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20)" identifier = (call_expression "(**(code **)(pcVar24 + 0x339350))(piVar14,uVar20)" (parenthesized_expression "(**(code **)(pcVar24 + 0x339350))" ( (pointer_expression "**(code **)(pcVar24 + 0x339350)" * (pointer_expression "*(code **)(pcVar24 + 0x339350)" * (cast_expression "(code **)(pcVar24 + 0x339350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x339350)" ( (binary_expression "pcVar24 + 0x339350" identifier + number_literal) ))))) )) (argument_list "(piVar14,uVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))))" ( (binary_expression "((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))" (parenthesized_expression "((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))" ( (binary_expression "(iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (parenthesized_expression "(iVar7 == 4)" ( (binary_expression "iVar7 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" ( (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))" ( (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))" ( (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (binary_expression "iVar7 == 4" identifier == number_literal) || (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" ( (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" identifier = (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" * (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" * (cast_expression "(code **)(pcVar24 + 0x3390b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3390b0)" ( (binary_expression "pcVar24 + 0x3390b0" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar7 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = uVar15 + 0x3f;\n    }" { (expression_statement "uVar18 = uVar15 + 0x3f;" (assignment_expression "uVar18 = uVar15 + 0x3f" identifier = (binary_expression "uVar15 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar7 = (int)uVar18 >> 6;" (assignment_expression "iVar7 = (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_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_07 < iVar7)" ( (binary_expression "extraout_v1_07 < iVar7" identifier < identifier) )) (compound_statement "{\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }" { (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_10 < 2;" (assignment_expression "bVar1 = extraout_v1_10 < 2" identifier = (binary_expression "extraout_v1_10 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = (int)uVar15 < 0x80;\n    }" { (expression_statement "bVar1 = (int)uVar15 < 0x80;" (assignment_expression "bVar1 = (int)uVar15 < 0x80" identifier = (binary_expression "(int)uVar15 < 0x80" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) }))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 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 **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }" { (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (if_statement "if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }" if (parenthesized_expression "(extraout_v1_09 < iVar7)" ( (binary_expression "extraout_v1_09 < iVar7" identifier < identifier) )) (compound_statement "{\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000707b4;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar7 = 1;\n    }" else (compound_statement "{\n      iVar7 = 1;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" else (compound_statement "{\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" { (expression_statement "uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);" (assignment_expression "uVar28 = (**(code **)(pcVar24 + 0x338d38))(7)" identifier = (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d38)" * (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }" { (expression_statement "uVar28 = (*pcVar25)(7);" (assignment_expression "uVar28 = (*pcVar25)(7)" identifier = (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;" if (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000704f8;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }" if (parenthesized_expression "((uint)uVar28 < 2)" ( (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          iVar7 = 1;\n          goto LAB_00070510;\n        }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00070510;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" else (compound_statement "{\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" { (labeled_statement "LAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);" statement_identifier : (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar28 = (*pcVar25)(7);" (assignment_expression "uVar28 = (*pcVar25)(7)" identifier = (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2))" ( (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)" ( (comma_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338d38)" * (cast_expression "(code **)(pcVar24 + 0x338d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d38)" ( (binary_expression "pcVar24 + 0x338d38" identifier + number_literal) ))))) , (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal)) ))) )) (compound_statement "{\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }" { (labeled_statement "LAB_000707b4:\n      (*pcVar25)(7);" statement_identifier : (expression_statement "(*pcVar25)(7);" (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(7)" ( number_literal ))) ;)) (expression_statement "iVar7 = extraout_v1_08;" (assignment_expression "iVar7 = extraout_v1_08" identifier = identifier) ;) }) (else_clause "else {\n      iVar7 = 2;\n    }" else (compound_statement "{\n      iVar7 = 2;\n    }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00070510:\n  uStack_134 = 1;" statement_identifier : (expression_statement "uStack_134 = 1;" (assignment_expression "uStack_134 = 1" identifier = number_literal) ;)) (expression_statement "uStack_15c = 0;" (assignment_expression "uStack_15c = 0" identifier = number_literal) ;) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" identifier = number_literal) ;) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "iStack_158 = iVar12;" (assignment_expression "iStack_158 = iVar12" identifier = identifier) ;) (expression_statement "piStack_154 = piVar14;" (assignment_expression "piStack_154 = piVar14" identifier = identifier) ;) (expression_statement "pdStack_150 = pdVar16;" (assignment_expression "pdStack_150 = pdVar16" identifier = identifier) ;) (expression_statement "uStack_14c = uVar20;" (assignment_expression "uStack_14c = uVar20" identifier = identifier) ;) (expression_statement "uStack_148 = uVar5;" (assignment_expression "uStack_148 = uVar5" identifier = identifier) ;) (expression_statement "uStack_144 = uVar6;" (assignment_expression "uStack_144 = uVar6" identifier = identifier) ;) (expression_statement "uStack_13c = uVar10;" (assignment_expression "uStack_13c = uVar10" identifier = identifier) ;) (expression_statement "uStack_138 = uVar15;" (assignment_expression "uStack_138 = uVar15" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);" (call_expression "(**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d94))" ( (pointer_expression "**(code **)(pcVar24 + 0x338d94)" * (pointer_expression "*(code **)(pcVar24 + 0x338d94)" * (cast_expression "(code **)(pcVar24 + 0x338d94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338d94)" ( (binary_expression "pcVar24 + 0x338d94" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0)" ( (binary_expression "*(int *)(pcVar24 + 0x338534) + 0x2020" (pointer_expression "*(int *)(pcVar24 + 0x338534)" * (cast_expression "(int *)(pcVar24 + 0x338534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x338534)" ( (binary_expression "pcVar24 + 0x338534" identifier + number_literal) )))) + number_literal) , (pointer_expression "&uStack_160" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar4 = uStack_134;" (assignment_expression "uVar4 = uStack_134" identifier = identifier) ;) (expression_statement "uVar20 = uStack_15c;" (assignment_expression "uVar20 = uStack_15c" identifier = identifier) ;) (expression_statement "uVar3 = uStack_160;" (assignment_expression "uVar3 = uStack_160" identifier = identifier) ;) (expression_statement "dVar26 = (double)CONCAT44(uStack_160,uStack_15c);" (assignment_expression "dVar26 = (double)CONCAT44(uStack_160,uStack_15c)" identifier = (cast_expression "(double)CONCAT44(uStack_160,uStack_15c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_160,uStack_15c)" identifier (argument_list "(uStack_160,uStack_15c)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(pcVar24 + 0x338af0))(uVar6);" (call_expression "(**(code **)(pcVar24 + 0x338af0))(uVar6)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338af0))" ( (pointer_expression "**(code **)(pcVar24 + 0x338af0)" * (pointer_expression "*(code **)(pcVar24 + 0x338af0)" * (cast_expression "(code **)(pcVar24 + 0x338af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338af0)" ( (binary_expression "pcVar24 + 0x338af0" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x338af0))(uVar5);" (call_expression "(**(code **)(pcVar24 + 0x338af0))(uVar5)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338af0))" ( (pointer_expression "**(code **)(pcVar24 + 0x338af0)" * (pointer_expression "*(code **)(pcVar24 + 0x338af0)" * (cast_expression "(code **)(pcVar24 + 0x338af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338af0)" ( (binary_expression "pcVar24 + 0x338af0" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" if (parenthesized_expression "(0.0 <= dVar26)" ( (binary_expression "0.0 <= dVar26" number_literal <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_168 = dVar26;" (assignment_expression "dStack_168 = dVar26" identifier = identifier) ;) }) (else_clause "else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" else (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" { (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1a78" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dStack_168 = -(double)CONCAT44(uVar3,uVar20);" (assignment_expression "dStack_168 = -(double)CONCAT44(uVar3,uVar20)" identifier = (unary_expression "-(double)CONCAT44(uVar3,uVar20)" - (cast_expression "(double)CONCAT44(uVar3,uVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar3,uVar20)" identifier (argument_list "(uVar3,uVar20)" ( identifier , identifier )))))) ;) }))) (if_statement "if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168)" ( (binary_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168" (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x13f8" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }" { (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26" identifier = (binary_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26" (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" else (compound_statement "{\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" { (expression_statement "dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);" (assignment_expression "dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" identifier = (binary_expression "dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" identifier / (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x13f8" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))))) ;) }))) (expression_statement "pdVar17 = pdVar16;" (assignment_expression "pdVar17 = pdVar16" identifier = identifier) ;) (do_statement "do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);" do (compound_statement "{\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  }" { (expression_statement "pdVar11 = pdVar17 + 1;" (assignment_expression "pdVar11 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar17 = *pdVar17 * dVar27;" (assignment_expression "*pdVar17 = *pdVar17 * dVar27" (pointer_expression "*pdVar17" * identifier) = (binary_expression "*pdVar17 * dVar27" (pointer_expression "*pdVar17" * identifier) * identifier)) ;) (expression_statement "pdVar17 = pdVar11;" (assignment_expression "pdVar17 = pdVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar16 + 0x41 != pdVar11)" ( (binary_expression "pdVar16 + 0x41 != pdVar11" (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 *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" if (parenthesized_expression "(0 < *(int *)(iVar12 + 0x2c0))" ( (binary_expression "0 < *(int *)(iVar12 + 0x2c0)" number_literal < (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) ))))) )) (compound_statement "{\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" { (expression_statement "piVar19 = *(int **)(iVar12 + 0x2d0);" (assignment_expression "piVar19 = *(int **)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar12 + 0x2d0)" * (cast_expression "(int **)(iVar12 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = piVar19;" (assignment_expression "piVar13 = piVar19" identifier = identifier) ;) (do_statement "do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);" do (compound_statement "{\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    }" { (if_statement "if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" if (parenthesized_expression "((piVar19[*piVar13 * 3 + 1] & 2U) != 0)" ( (binary_expression "(piVar19[*piVar13 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar19[*piVar13 * 3 + 1] & 2U)" ( (binary_expression "piVar19[*piVar13 * 3 + 1] & 2U" (subscript_expression "piVar19[*piVar13 * 3 + 1]" identifier [ (binary_expression "*piVar13 * 3 + 1" (binary_expression "*piVar13 * 3" (pointer_expression "*piVar13" * identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        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 "piVar13 = piVar13 + 3;" (assignment_expression "piVar13 = piVar13 + 3" identifier = (binary_expression "piVar13 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3)" ( (binary_expression "piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3" identifier != (binary_expression "piVar19 + *(int *)(iVar12 + 0x2c0) * 3" identifier + (binary_expression "*(int *)(iVar12 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) )))) * number_literal))) )) ;) (if_statement "if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\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      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }" { (expression_statement "dVar26 = (double)(int)pdVar17;" (assignment_expression "dVar26 = (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        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 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        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }" { (expression_statement "dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);" (assignment_expression "dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" identifier = (binary_expression "dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1418" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (goto_statement "goto LAB_00070664;" goto statement_identifier ;) })) })) (expression_statement "dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);" (assignment_expression "dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" * (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" ( (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" * (cast_expression "(int *)(pcVar24 + 0x3384dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x3384dc)" ( (binary_expression "pcVar24 + 0x3384dc" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "LAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;" statement_identifier : (expression_statement "dVar26 = pdVar16[0x40] / dVar26;" (assignment_expression "dVar26 = pdVar16[0x40] / dVar26" identifier = (binary_expression "pdVar16[0x40] / dVar26" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) / identifier)) ;)) (expression_statement "pdVar16[0x40] = dVar26;" (assignment_expression "pdVar16[0x40] = dVar26" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar27 = SQRT(dVar26);" (assignment_expression "dVar27 = SQRT(dVar26)" identifier = (call_expression "SQRT(dVar26)" identifier (argument_list "(dVar26)" ( identifier )))) ;) (if_statement "if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }" if (parenthesized_expression "(dVar26 < 0.0)" ( (binary_expression "dVar26 < 0.0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x33907c))();\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x33907c))();" (call_expression "(**(code **)(pcVar24 + 0x33907c))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x33907c))" ( (pointer_expression "**(code **)(pcVar24 + 0x33907c)" * (pointer_expression "*(code **)(pcVar24 + 0x33907c)" * (cast_expression "(code **)(pcVar24 + 0x33907c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x33907c)" ( (binary_expression "pcVar24 + 0x33907c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = *piVar21;" (assignment_expression "iVar7 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pdVar16[0x40] = dVar27;" (assignment_expression "pdVar16[0x40] = dVar27" (subscript_expression "pdVar16[0x40]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_12c != iVar7)" ( (binary_expression "iStack_12c != iVar7" identifier != identifier) )) (compound_statement "{\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }" { (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x338c60);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x338c60)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x338c60)" * (cast_expression "(code **)(pcVar24 + 0x338c60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338c60)" ( (binary_expression "pcVar24 + 0x338c60" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "dVar26 = 0.0;" (assignment_expression "dVar26 = 0.0" identifier = number_literal) ;) (expression_statement "uVar5 = FUN_0006fd44();" (assignment_expression "uVar5 = FUN_0006fd44()" identifier = (call_expression "FUN_0006fd44()" identifier (argument_list "()" ( )))) ;) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (do_statement "do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);" do (compound_statement "{\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    }" { (expression_statement "dVar27 = SQRT(*pdVar16);" (assignment_expression "dVar27 = SQRT(*pdVar16)" identifier = (call_expression "SQRT(*pdVar16)" identifier (argument_list "(*pdVar16)" ( (pointer_expression "*pdVar16" * identifier) )))) ;) (if_statement "if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }" if (parenthesized_expression "(*pdVar16 < dVar26)" ( (binary_expression "*pdVar16 < dVar26" (pointer_expression "*pdVar16" * identifier) < identifier) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x338c54))();\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x338c54))();" (call_expression "(**(code **)(pcVar24 + 0x338c54))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x338c54))" ( (pointer_expression "**(code **)(pcVar24 + 0x338c54)" * (pointer_expression "*(code **)(pcVar24 + 0x338c54)" * (cast_expression "(code **)(pcVar24 + 0x338c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x338c54)" ( (binary_expression "pcVar24 + 0x338c54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pdVar11 = pdVar16 + 1;" (assignment_expression "pdVar11 = pdVar16 + 1" identifier = (binary_expression "pdVar16 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar16 = dVar27;" (assignment_expression "*pdVar16 = dVar27" (pointer_expression "*pdVar16" * identifier) = identifier) ;) (expression_statement "pdVar16 = pdVar11;" (assignment_expression "pdVar16 = pdVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar11 != pdVar17 + 0x41)" ( (binary_expression "pdVar11 != pdVar17 + 0x41" identifier != (binary_expression "pdVar17 + 0x41" identifier + number_literal)) )) ;) (return_statement "return uVar5;" return identifier ;) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , 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 (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 )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (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 )))) , (binary_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 )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (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 LIT <= IDENT) )) (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) ;) }) (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 = (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 IDENT + 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 IDENT + 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 IDENT + 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 = LIT) ;) (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 { (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) ))))) ;)) }) (else_clause else (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 = (binary_expression 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 == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 IDENT + LIT) )))))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = (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 = (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 = (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 = (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 (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) )))) <= (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 = (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 = 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 = 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) , (pointer_expression & IDENT) , 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 = (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 = 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 != (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 != (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 = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}" (type_identifier "undefined4") (function_declarator "FUN_0006fd44(int param_1,int param_2,double *param_3,undefined4 param_4)" (identifier "FUN_0006fd44") (parameter_list "(int param_1,int param_2,double *param_3,undefined4 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "double *param_3" (primitive_type "double") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  double *pdVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  double *extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int *piVar13;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  int extraout_v1_09;\n  int extraout_v1_10;\n  int *piVar14;\n  uint uVar15;\n  double *pdVar16;\n  double *pdVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  int *piVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  double dVar26;\n  double dVar27;\n  undefined8 uVar28;\n  double dStack_168;\n  undefined4 uStack_160;\n  undefined4 uStack_15c;\n  int iStack_158;\n  int *piStack_154;\n  double *pdStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  int iStack_12c;\n  undefined4 uStack_128;\n  int *piStack_124;\n  uint uStack_120;\n  int *piStack_11c;\n  uint uStack_118;\n  int *piStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  code *pcStack_104;\n  undefined *puStack_e8;\n  double *pdStack_dc;\n  int iStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  undefined4 uStack_c8;\n  undefined4 uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  int iStack_b0;\n  double *pdStack_ac;\n  undefined *puStack_a8;\n  undefined4 uStack_a4;\n  uint uStack_a0;\n  undefined4 uStack_9c;\n  uint uStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_90;\n  code *pcStack_8c;\n  double local_68;\n  int local_60;\n  undefined4 uStack_5c;\n  int local_58;\n  int local_54;\n  double *local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  uint local_3c;\n  uint local_38;\n  undefined4 local_34;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  uVar15 = *(uint *)(param_1 + 0x1c);\n  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }\n  uVar10 = *(uint *)(param_1 + 0x18);\n  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);\n  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);\n  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);\n  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_0006fe50:\n  piVar19 = (int *)0x0;\n  piVar13 = &local_60;\n  local_34 = 1;\n  uStack_5c = 0;\n  local_60 = 0;\n  local_40 = 0;\n  local_58 = param_1;\n  local_54 = param_2;\n  local_50 = param_3;\n  local_4c = param_4;\n  local_48 = uVar5;\n  local_44 = uVar6;\n  local_3c = uVar10;\n  local_38 = uVar15;\n  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);\n  uVar20 = local_34;\n  uVar3 = uStack_5c;\n  iVar7 = local_60;\n  dVar26 = (double)CONCAT44(local_60,uStack_5c);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);\n  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }\n  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }\n  pdVar16 = param_3;\n  do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);\n  iVar7 = 0;\n  if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }\n  iVar12 = *(int *)puVar2;\n  param_3[0x40] = param_3[0x40] / dVar26;\n  if (local_2c == iVar12) {\n    return uVar20;\n  }\n  pcVar24 = FUN_0007013c;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_e8 = puVar23 + 0x340774;\n  uStack_a4 = uVar20;\n  puStack_a8 = puVar2;\n  piVar22 = *(int **)(puVar23 + 0x3390f4);\n  uVar18 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }\n  uVar8 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }\n  iStack_b4 = *piVar22;\n  iStack_b0 = param_1;\n  pdStack_ac = param_3;\n  uStack_a0 = uVar15;\n  uStack_9c = param_4;\n  uStack_98 = uVar10;\n  uStack_94 = uVar5;\n  uStack_90 = uVar6;\n  pcStack_8c = pcVar24;\n  uVar5 = (**(code **)(puVar23 + 0x339618))();\n  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);\n  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);\n  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }\nLAB_00070248:\n  uVar20 = 0;\n  piVar14 = &iStack_d8;\n  uStack_b8 = 1;\n  iStack_d8 = iVar12;\n  piStack_d4 = piVar13;\n  iStack_d0 = iVar7;\n  piStack_cc = piVar19;\n  uStack_c8 = uVar5;\n  uStack_c4 = uVar6;\n  uStack_c0 = uVar8;\n  uStack_bc = uVar18;\n  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);\n  uVar3 = uStack_b8;\n  (**(code **)(puStack_e8 + -0x79bc))(uVar6);\n  (**(code **)(puStack_e8 + -0x79bc))(uVar5);\n  if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }\n  pcVar24 = *(code **)(puStack_e8 + -0x784c);\n  pcVar25 = FUN_00070404;\n  iVar12 = iStack_b4;\n  (*pcVar24)();\n  piVar21 = *(int **)(pcVar24 + 0x338e2c);\n  uVar15 = *(uint *)(iVar12 + 0x1c);\n  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }\n  uVar10 = *(uint *)(iVar12 + 0x18);\n  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }\n  iStack_12c = *piVar21;\n  uStack_128 = uVar3;\n  piStack_124 = piVar13;\n  uStack_120 = uVar18;\n  piStack_11c = piVar19;\n  uStack_118 = uVar8;\n  piStack_114 = piVar22;\n  uStack_110 = uVar5;\n  uStack_10c = uVar6;\n  iStack_108 = iVar7;\n  pcStack_104 = pcVar25;\n  uVar5 = (**(code **)(pcVar24 + 0x339350))();\n  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);\n  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);\n  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }\nLAB_00070510:\n  uStack_134 = 1;\n  uStack_15c = 0;\n  uStack_160 = 0;\n  uStack_140 = 0;\n  iStack_158 = iVar12;\n  piStack_154 = piVar14;\n  pdStack_150 = pdVar16;\n  uStack_14c = uVar20;\n  uStack_148 = uVar5;\n  uStack_144 = uVar6;\n  uStack_13c = uVar10;\n  uStack_138 = uVar15;\n  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);\n  uVar4 = uStack_134;\n  uVar20 = uStack_15c;\n  uVar3 = uStack_160;\n  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);\n  (**(code **)(pcVar24 + 0x338af0))(uVar6);\n  (**(code **)(pcVar24 + 0x338af0))(uVar5);\n  if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }\n  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }\n  pdVar17 = pdVar16;\n  do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);\n  pdVar17 = (double *)0x0;\n  if (0 < *(int *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }\n  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\nLAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;\n  pdVar16[0x40] = dVar26;\n  dVar27 = SQRT(dVar26);\n  if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }\n  iVar7 = *piVar21;\n  pdVar16[0x40] = dVar27;\n  if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }\n  return uVar4;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "double *pdVar11;" (primitive_type "double") (pointer_declarator "*pdVar11" (* "*") (identifier "pdVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "int extraout_v1_00;" (primitive_type "int") (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 extraout_v1_03;" (primitive_type "int") (identifier "extraout_v1_03") (; ";")) (declaration "double *extraout_v1_04;" (primitive_type "double") (pointer_declarator "*extraout_v1_04" (* "*") (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 *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int extraout_v1_07;" (primitive_type "int") (identifier "extraout_v1_07") (; ";")) (declaration "int extraout_v1_08;" (primitive_type "int") (identifier "extraout_v1_08") (; ";")) (declaration "int extraout_v1_09;" (primitive_type "int") (identifier "extraout_v1_09") (; ";")) (declaration "int extraout_v1_10;" (primitive_type "int") (identifier "extraout_v1_10") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "double *pdVar16;" (primitive_type "double") (pointer_declarator "*pdVar16" (* "*") (identifier "pdVar16")) (; ";")) (declaration "double *pdVar17;" (primitive_type "double") (pointer_declarator "*pdVar17" (* "*") (identifier "pdVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "double dVar26;" (primitive_type "double") (identifier "dVar26") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "undefined8 uVar28;" (type_identifier "undefined8") (identifier "uVar28") (; ";")) (declaration "double dStack_168;" (primitive_type "double") (identifier "dStack_168") (; ";")) (declaration "undefined4 uStack_160;" (type_identifier "undefined4") (identifier "uStack_160") (; ";")) (declaration "undefined4 uStack_15c;" (type_identifier "undefined4") (identifier "uStack_15c") (; ";")) (declaration "int iStack_158;" (primitive_type "int") (identifier "iStack_158") (; ";")) (declaration "int *piStack_154;" (primitive_type "int") (pointer_declarator "*piStack_154" (* "*") (identifier "piStack_154")) (; ";")) (declaration "double *pdStack_150;" (primitive_type "double") (pointer_declarator "*pdStack_150" (* "*") (identifier "pdStack_150")) (; ";")) (declaration "undefined4 uStack_14c;" (type_identifier "undefined4") (identifier "uStack_14c") (; ";")) (declaration "undefined4 uStack_148;" (type_identifier "undefined4") (identifier "uStack_148") (; ";")) (declaration "undefined4 uStack_144;" (type_identifier "undefined4") (identifier "uStack_144") (; ";")) (declaration "undefined4 uStack_140;" (type_identifier "undefined4") (identifier "uStack_140") (; ";")) (declaration "uint uStack_13c;" (type_identifier "uint") (identifier "uStack_13c") (; ";")) (declaration "uint uStack_138;" (type_identifier "uint") (identifier "uStack_138") (; ";")) (declaration "undefined4 uStack_134;" (type_identifier "undefined4") (identifier "uStack_134") (; ";")) (declaration "int iStack_12c;" (primitive_type "int") (identifier "iStack_12c") (; ";")) (declaration "undefined4 uStack_128;" (type_identifier "undefined4") (identifier "uStack_128") (; ";")) (declaration "int *piStack_124;" (primitive_type "int") (pointer_declarator "*piStack_124" (* "*") (identifier "piStack_124")) (; ";")) (declaration "uint uStack_120;" (type_identifier "uint") (identifier "uStack_120") (; ";")) (declaration "int *piStack_11c;" (primitive_type "int") (pointer_declarator "*piStack_11c" (* "*") (identifier "piStack_11c")) (; ";")) (declaration "uint uStack_118;" (type_identifier "uint") (identifier "uStack_118") (; ";")) (declaration "int *piStack_114;" (primitive_type "int") (pointer_declarator "*piStack_114" (* "*") (identifier "piStack_114")) (; ";")) (declaration "undefined4 uStack_110;" (type_identifier "undefined4") (identifier "uStack_110") (; ";")) (declaration "undefined4 uStack_10c;" (type_identifier "undefined4") (identifier "uStack_10c") (; ";")) (declaration "int iStack_108;" (primitive_type "int") (identifier "iStack_108") (; ";")) (declaration "code *pcStack_104;" (type_identifier "code") (pointer_declarator "*pcStack_104" (* "*") (identifier "pcStack_104")) (; ";")) (declaration "undefined *puStack_e8;" (type_identifier "undefined") (pointer_declarator "*puStack_e8" (* "*") (identifier "puStack_e8")) (; ";")) (declaration "double *pdStack_dc;" (primitive_type "double") (pointer_declarator "*pdStack_dc" (* "*") (identifier "pdStack_dc")) (; ";")) (declaration "int iStack_d8;" (primitive_type "int") (identifier "iStack_d8") (; ";")) (declaration "int *piStack_d4;" (primitive_type "int") (pointer_declarator "*piStack_d4" (* "*") (identifier "piStack_d4")) (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "int *piStack_cc;" (primitive_type "int") (pointer_declarator "*piStack_cc" (* "*") (identifier "piStack_cc")) (; ";")) (declaration "undefined4 uStack_c8;" (type_identifier "undefined4") (identifier "uStack_c8") (; ";")) (declaration "undefined4 uStack_c4;" (type_identifier "undefined4") (identifier "uStack_c4") (; ";")) (declaration "uint uStack_c0;" (type_identifier "uint") (identifier "uStack_c0") (; ";")) (declaration "uint uStack_bc;" (type_identifier "uint") (identifier "uStack_bc") (; ";")) (declaration "undefined4 uStack_b8;" (type_identifier "undefined4") (identifier "uStack_b8") (; ";")) (declaration "int iStack_b4;" (primitive_type "int") (identifier "iStack_b4") (; ";")) (declaration "int iStack_b0;" (primitive_type "int") (identifier "iStack_b0") (; ";")) (declaration "double *pdStack_ac;" (primitive_type "double") (pointer_declarator "*pdStack_ac" (* "*") (identifier "pdStack_ac")) (; ";")) (declaration "undefined *puStack_a8;" (type_identifier "undefined") (pointer_declarator "*puStack_a8" (* "*") (identifier "puStack_a8")) (; ";")) (declaration "undefined4 uStack_a4;" (type_identifier "undefined4") (identifier "uStack_a4") (; ";")) (declaration "uint uStack_a0;" (type_identifier "uint") (identifier "uStack_a0") (; ";")) (declaration "undefined4 uStack_9c;" (type_identifier "undefined4") (identifier "uStack_9c") (; ";")) (declaration "uint uStack_98;" (type_identifier "uint") (identifier "uStack_98") (; ";")) (declaration "undefined4 uStack_94;" (type_identifier "undefined4") (identifier "uStack_94") (; ";")) (declaration "undefined4 uStack_90;" (type_identifier "undefined4") (identifier "uStack_90") (; ";")) (declaration "code *pcStack_8c;" (type_identifier "code") (pointer_declarator "*pcStack_8c" (* "*") (identifier "pcStack_8c")) (; ";")) (declaration "double local_68;" (primitive_type "double") (identifier "local_68") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "undefined4 uStack_5c;" (type_identifier "undefined4") (identifier "uStack_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "double *local_50;" (primitive_type "double") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "uVar15 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c))" (( "(") (binary_expression "*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)" (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(param_2 + 0x1c)" (* "*") (cast_expression "(uint *)(param_2 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n    uVar15 = *(uint *)(param_2 + 0x1c);\n  }" ({ "{") (expression_statement "uVar15 = *(uint *)(param_2 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(param_2 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_2 + 0x1c)" (* "*") (cast_expression "(uint *)(param_2 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x18)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18))" (( "(") (binary_expression "*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)" (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n    uVar10 = *(uint *)(param_2 + 0x18);\n  }" ({ "{") (expression_statement "uVar10 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar10 = *(uint *)(param_2 + 0x18)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (expression_statement "uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);" (assignment_expression "uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" (( "(") (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" (* "*") (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireVirtualCacheView_003a9754"))) () ")")) (argument_list "(param_1,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);" (assignment_expression "uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4)" (parenthesized_expression "(*(code *)PTR_AcquireVirtualCacheView_003a9754)" (( "(") (pointer_expression "*(code *)PTR_AcquireVirtualCacheView_003a9754" (* "*") (cast_expression "(code *)PTR_AcquireVirtualCacheView_003a9754" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireVirtualCacheView_003a9754"))) () ")")) (argument_list "(param_2,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" (( "(") (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" (* "*") (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImagePixelCacheType_003a94b4"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" (if "if") (parenthesized_expression "(((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3))))" (( "(") (binary_expression "((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))" (parenthesized_expression "((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)\n      )" (( "(") (binary_expression "(iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (parenthesized_expression "(iVar7 == 4)" (( "(") (binary_expression "iVar7 == 4" (identifier "iVar7") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (( "(") (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" (( "(") (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" (* "*") (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImagePixelCacheType_003a94b4"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))" (( "(") (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3))" (( "(") (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" (( "(") (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" (* "*") (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImagePixelCacheType_003a94b4"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar7 == 4 ||\n            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (binary_expression "iVar7 == 4" (identifier "iVar7") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)" (( "(") (comma_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3" (assignment_expression "iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1)" (parenthesized_expression "(*(code *)PTR_GetImagePixelCacheType_003a94b4)" (( "(") (pointer_expression "*(code *)PTR_GetImagePixelCacheType_003a94b4" (* "*") (cast_expression "(code *)PTR_GetImagePixelCacheType_003a94b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImagePixelCacheType_003a94b4"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 1;\n    }\n  }" ({ "{") (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" (identifier "uVar18") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar18 = uVar15 + 0x3f;\n    }" ({ "{") (expression_statement "uVar18 = uVar15 + 0x3f;" (assignment_expression "uVar18 = uVar15 + 0x3f" (identifier "uVar18") (= "=") (binary_expression "uVar15 + 0x3f" (identifier "uVar15") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (int)uVar18 >> 6;" (assignment_expression "iVar7 = (int)uVar18 >> 6" (identifier "iVar7") (= "=") (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 < iVar7) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1 < iVar7)" (( "(") (binary_expression "extraout_v1 < iVar7" (identifier "extraout_v1") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      bVar1 = extraout_v1_02 < 2;\n    }" ({ "{") (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (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"))) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" (else "else") (compound_statement "{\n      bVar1 = (int)uVar15 < 0x80;\n    }" ({ "{") (expression_statement "bVar1 = (int)uVar15 < 0x80;" (assignment_expression "bVar1 = (int)uVar15 < 0x80" (identifier "bVar1") (= "=") (binary_expression "(int)uVar15 < 0x80" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }\n    else {\n      iVar7 = 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 *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (extraout_v1_01 < iVar7) goto LAB_000700d8;\n    }" ({ "{") (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (if_statement "if (extraout_v1_01 < iVar7) goto LAB_000700d8;" (if "if") (parenthesized_expression "(extraout_v1_01 < iVar7)" (( "(") (binary_expression "extraout_v1_01 < iVar7" (identifier "extraout_v1_01") (< "<") (identifier "iVar7")) () ")")) (goto_statement "goto LAB_000700d8;" (goto "goto") (statement_identifier "LAB_000700d8") (; ";"))) (} "}")) (else_clause "else {\n      iVar7 = 1;\n    }" (else "else") (compound_statement "{\n      iVar7 = 1;\n    }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" (else "else") (compound_statement "{\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }\n    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" ({ "{") (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (identifier "uVar28") (= "=") (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }\n    }" ({ "{") (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (identifier "uVar28") (= "=") (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n        iVar7 = 1;\n        goto LAB_0006fe50;\n      }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0006fe50;" (goto "goto") (statement_identifier "LAB_0006fe50") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (assignment_expression "uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (identifier "uVar28") (= "=") (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }\n    else {\n      iVar7 = 2;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\nLAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n      iVar7 = extraout_v1_00;\n    }" ({ "{") (labeled_statement "LAB_000700d8:\n      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (statement_identifier "LAB_000700d8") (: ":") (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";"))) (expression_statement "iVar7 = extraout_v1_00;" (assignment_expression "iVar7 = extraout_v1_00" (identifier "iVar7") (= "=") (identifier "extraout_v1_00")) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = 2;\n    }" (else "else") (compound_statement "{\n      iVar7 = 2;\n    }" ({ "{") (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" (identifier "iVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0006fe50:\n  piVar19 = (int *)0x0;" (statement_identifier "LAB_0006fe50") (: ":") (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" (identifier "piVar19") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "piVar13 = &local_60;" (assignment_expression "piVar13 = &local_60" (identifier "piVar13") (= "=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (; ";")) (expression_statement "local_34 = 1;" (assignment_expression "local_34 = 1" (identifier "local_34") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" (identifier "uStack_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" (identifier "local_58") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_54 = param_2;" (assignment_expression "local_54 = param_2" (identifier "local_54") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" (identifier "local_50") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_4c = param_4;" (assignment_expression "local_4c = param_4" (identifier "local_4c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_48 = uVar5;" (assignment_expression "local_48 = uVar5" (identifier "local_48") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "local_44 = uVar6;" (assignment_expression "local_44 = uVar6" (identifier "local_44") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "local_3c = uVar10;" (assignment_expression "local_3c = uVar10" (identifier "local_3c") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "local_38 = uVar15;" (assignment_expression "local_38 = uVar15" (identifier "local_38") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" (( "(") (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" (* "*") (cast_expression "(code *)PTR_GOMP_parallel_003a9198" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GOMP_parallel_003a9198"))) () ")")) (argument_list "(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7)" (( "(") (binary_expression "PTR_LAB_003a8938 + 0x2948" (identifier "PTR_LAB_003a8938") (+ "+") (number_literal "0x2948")) (, ",") (identifier "piVar13") (, ",") (identifier "iVar7") () ")"))) (; ";")) (expression_statement "uVar20 = local_34;" (assignment_expression "uVar20 = local_34" (identifier "uVar20") (= "=") (identifier "local_34")) (; ";")) (expression_statement "uVar3 = uStack_5c;" (assignment_expression "uVar3 = uStack_5c" (identifier "uVar3") (= "=") (identifier "uStack_5c")) (; ";")) (expression_statement "iVar7 = local_60;" (assignment_expression "iVar7 = local_60" (identifier "iVar7") (= "=") (identifier "local_60")) (; ";")) (expression_statement "dVar26 = (double)CONCAT44(local_60,uStack_5c);" (assignment_expression "dVar26 = (double)CONCAT44(local_60,uStack_5c)" (identifier "dVar26") (= "=") (cast_expression "(double)CONCAT44(local_60,uStack_5c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(local_60,uStack_5c)" (identifier "CONCAT44") (argument_list "(local_60,uStack_5c)" (( "(") (identifier "local_60") (, ",") (identifier "uStack_5c") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);" (call_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)" (( "(") (pointer_expression "*(code *)PTR_DestroyCacheView_003a8ef4" (* "*") (cast_expression "(code *)PTR_DestroyCacheView_003a8ef4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyCacheView_003a8ef4"))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);" (call_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003a8ef4)" (( "(") (pointer_expression "*(code *)PTR_DestroyCacheView_003a8ef4" (* "*") (cast_expression "(code *)PTR_DestroyCacheView_003a8ef4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyCacheView_003a8ef4"))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (0.0 <= dVar26) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" (if "if") (parenthesized_expression "(0.0 <= dVar26)" (( "(") (binary_expression "0.0 <= dVar26" (number_literal "0.0") (<= "<=") (identifier "dVar26")) () ")")) (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n    local_68 = dVar26;\n  }" ({ "{") (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "local_68 = dVar26;" (assignment_expression "local_68 = dVar26" (identifier "local_68") (= "=") (identifier "dVar26")) (; ";")) (} "}")) (else_clause "else {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" (else "else") (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n    local_68 = -(double)CONCAT44(iVar7,uVar3);\n  }" ({ "{") (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a78" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a78")) () ")"))))) (; ";")) (expression_statement "local_68 = -(double)CONCAT44(iVar7,uVar3);" (assignment_expression "local_68 = -(double)CONCAT44(iVar7,uVar3)" (identifier "local_68") (= "=") (unary_expression "-(double)CONCAT44(iVar7,uVar3)" (- "-") (cast_expression "(double)CONCAT44(iVar7,uVar3)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar7,uVar3)" (identifier "CONCAT44") (argument_list "(iVar7,uVar3)" (( "(") (identifier "iVar7") (, ",") (identifier "uVar3") () ")")))))) (; ";")) (} "}")))) (if_statement "if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68)" (( "(") (binary_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68" (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x13f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x13f8")) () ")")))) (<= "<=") (identifier "local_68")) () ")")) (compound_statement "{\n    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;\n  }" ({ "{") (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26" (identifier "dVar27") (= "=") (binary_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26" (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar26"))) (; ";")) (} "}")) (else_clause "else {\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" (else "else") (compound_statement "{\n    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n  }" ({ "{") (expression_statement "dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8)" (identifier "dVar27") (= "=") (binary_expression "dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8)" (identifier "dVar27") (/ "/") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x13f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x13f8")) () ")")))))) (; ";")) (} "}")))) (expression_statement "pdVar16 = param_3;" (assignment_expression "pdVar16 = param_3" (identifier "pdVar16") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  } while (param_3 + 0x41 != pdVar17);" (do "do") (compound_statement "{\n    pdVar17 = pdVar16 + 1;\n    *pdVar16 = *pdVar16 * dVar27;\n    pdVar16 = pdVar17;\n  }" ({ "{") (expression_statement "pdVar17 = pdVar16 + 1;" (assignment_expression "pdVar17 = pdVar16 + 1" (identifier "pdVar17") (= "=") (binary_expression "pdVar16 + 1" (identifier "pdVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar16 = *pdVar16 * dVar27;" (assignment_expression "*pdVar16 = *pdVar16 * dVar27" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (= "=") (binary_expression "*pdVar16 * dVar27" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (* "*") (identifier "dVar27"))) (; ";")) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" (identifier "pdVar16") (= "=") (identifier "pdVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_3 + 0x41 != pdVar17)" (( "(") (binary_expression "param_3 + 0x41 != pdVar17" (binary_expression "param_3 + 0x41" (identifier "param_3") (+ "+") (number_literal "0x41")) (!= "!=") (identifier "pdVar17")) () ")")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x2c0) < 1) {\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }\n  else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x2c0) < 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x2c0) < 1" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  }" ({ "{") (labeled_statement "LAB_0007006c:\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (statement_identifier "LAB_0007006c") (: ":") (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" (else "else") (compound_statement "{\n    piVar19 = *(int **)(param_1 + 0x2d0);\n    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;\n    piVar22 = piVar19;\n    do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);\n    if (iVar7 == 0) goto LAB_0007006c;\n    dVar26 = (double)iVar7;\n    if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }\n  }" ({ "{") (expression_statement "piVar19 = *(int **)(param_1 + 0x2d0);" (assignment_expression "piVar19 = *(int **)(param_1 + 0x2d0)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(param_1 + 0x2d0)" (* "*") (cast_expression "(int **)(param_1 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;" (assignment_expression "piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3" (identifier "piVar13") (= "=") (binary_expression "piVar19 + *(int *)(param_1 + 0x2c0) * 3" (identifier "piVar19") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 3" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "3")))) (; ";")) (expression_statement "piVar22 = piVar19;" (assignment_expression "piVar22 = piVar19" (identifier "piVar22") (= "=") (identifier "piVar19")) (; ";")) (do_statement "do {\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    } while (piVar22 != piVar13);" (do "do") (compound_statement "{\n      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }\n      piVar22 = piVar22 + 3;\n    }" ({ "{") (if_statement "if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {\n        iVar7 = iVar7 + 1;\n      }" (if "if") (parenthesized_expression "((piVar19[*piVar22 * 3 + 1] & 2U) != 0)" (( "(") (binary_expression "(piVar19[*piVar22 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar19[*piVar22 * 3 + 1] & 2U)" (( "(") (binary_expression "piVar19[*piVar22 * 3 + 1] & 2U" (subscript_expression "piVar19[*piVar22 * 3 + 1]" (identifier "piVar19") ([ "[") (binary_expression "*piVar22 * 3 + 1" (binary_expression "*piVar22 * 3" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (& "&") (number_literal "2U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = iVar7 + 1;\n      }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar22 = piVar22 + 3;" (assignment_expression "piVar22 = piVar22 + 3" (identifier "piVar22") (= "=") (binary_expression "piVar22 + 3" (identifier "piVar22") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar22 != piVar13)" (( "(") (binary_expression "piVar22 != piVar13" (identifier "piVar22") (!= "!=") (identifier "piVar13")) () ")")) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_0007006c;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007006c;" (goto "goto") (statement_identifier "LAB_0007006c") (; ";"))) (expression_statement "dVar26 = (double)iVar7;" (assignment_expression "dVar26 = (double)iVar7" (identifier "dVar26") (= "=") (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7"))) (; ";")) (if_statement "if (iVar7 < 0) {\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n    }" ({ "{") (expression_statement "dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar26") (= "=") (binary_expression "dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar26") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar12 = *(int *)puVar2;" (assignment_expression "iVar12 = *(int *)puVar2" (identifier "iVar12") (= "=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "param_3[0x40] = param_3[0x40] / dVar26;" (assignment_expression "param_3[0x40] = param_3[0x40] / dVar26" (subscript_expression "param_3[0x40]" (identifier "param_3") ([ "[") (number_literal "0x40") (] "]")) (= "=") (binary_expression "param_3[0x40] / dVar26" (subscript_expression "param_3[0x40]" (identifier "param_3") ([ "[") (number_literal "0x40") (] "]")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (local_2c == iVar12) {\n    return uVar20;\n  }" (if "if") (parenthesized_expression "(local_2c == iVar12)" (( "(") (binary_expression "local_2c == iVar12" (identifier "local_2c") (== "==") (identifier "iVar12")) () ")")) (compound_statement "{\n    return uVar20;\n  }" ({ "{") (return_statement "return uVar20;" (return "return") (identifier "uVar20") (; ";")) (} "}"))) (expression_statement "pcVar24 = FUN_0007013c;" (assignment_expression "pcVar24 = FUN_0007013c" (identifier "pcVar24") (= "=") (identifier "FUN_0007013c")) (; ";")) (expression_statement "iVar12 = local_2c;" (assignment_expression "iVar12 = local_2c" (identifier "iVar12") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar23 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar23 = PTR___stack_chk_fail_003a9064" (identifier "puVar23") (= "=") (identifier "PTR___stack_chk_fail_003a9064")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_e8 = puVar23 + 0x340774;" (assignment_expression "puStack_e8 = puVar23 + 0x340774" (identifier "puStack_e8") (= "=") (binary_expression "puVar23 + 0x340774" (identifier "puVar23") (+ "+") (number_literal "0x340774"))) (; ";")) (expression_statement "uStack_a4 = uVar20;" (assignment_expression "uStack_a4 = uVar20" (identifier "uStack_a4") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puStack_a8 = puVar2;" (assignment_expression "puStack_a8 = puVar2" (identifier "puStack_a8") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "piVar22 = *(int **)(puVar23 + 0x3390f4);" (assignment_expression "piVar22 = *(int **)(puVar23 + 0x3390f4)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(puVar23 + 0x3390f4)" (* "*") (cast_expression "(int **)(puVar23 + 0x3390f4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x3390f4)" (( "(") (binary_expression "puVar23 + 0x3390f4" (identifier "puVar23") (+ "+") (number_literal "0x3390f4")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar12 + 0x1c);" (assignment_expression "uVar18 = *(uint *)(iVar12 + 0x1c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {\n    uVar18 = piVar13[7];\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7])" (( "(") (binary_expression "*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]" (pointer_expression "*(uint *)(iVar12 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (cast_expression "(uint)piVar13[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar13[7]" (identifier "piVar13") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n    uVar18 = piVar13[7];\n  }" ({ "{") (expression_statement "uVar18 = piVar13[7];" (assignment_expression "uVar18 = piVar13[7]" (identifier "uVar18") (= "=") (subscript_expression "piVar13[7]" (identifier "piVar13") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar8 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar8 = *(uint *)(iVar12 + 0x18)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {\n    uVar8 = piVar13[6];\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6])" (( "(") (binary_expression "*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]" (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (cast_expression "(uint)piVar13[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar13[6]" (identifier "piVar13") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n    uVar8 = piVar13[6];\n  }" ({ "{") (expression_statement "uVar8 = piVar13[6];" (assignment_expression "uVar8 = piVar13[6]" (identifier "uVar8") (= "=") (subscript_expression "piVar13[6]" (identifier "piVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "iStack_b4 = *piVar22;" (assignment_expression "iStack_b4 = *piVar22" (identifier "iStack_b4") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "iStack_b0 = param_1;" (assignment_expression "iStack_b0 = param_1" (identifier "iStack_b0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pdStack_ac = param_3;" (assignment_expression "pdStack_ac = param_3" (identifier "pdStack_ac") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uStack_a0 = uVar15;" (assignment_expression "uStack_a0 = uVar15" (identifier "uStack_a0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uStack_9c = param_4;" (assignment_expression "uStack_9c = param_4" (identifier "uStack_9c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uStack_98 = uVar10;" (assignment_expression "uStack_98 = uVar10" (identifier "uStack_98") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uStack_94 = uVar5;" (assignment_expression "uStack_94 = uVar5" (identifier "uStack_94") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_90 = uVar6;" (assignment_expression "uStack_90 = uVar6" (identifier "uStack_90") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "pcStack_8c = pcVar24;" (assignment_expression "pcStack_8c = pcVar24" (identifier "pcStack_8c") (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "uVar5 = (**(code **)(puVar23 + 0x339618))();" (assignment_expression "uVar5 = (**(code **)(puVar23 + 0x339618))()" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar23 + 0x339618))()" (parenthesized_expression "(**(code **)(puVar23 + 0x339618))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x339618)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x339618)" (* "*") (cast_expression "(code **)(puVar23 + 0x339618)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x339618)" (( "(") (binary_expression "puVar23 + 0x339618" (identifier "puVar23") (+ "+") (number_literal "0x339618")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);" (assignment_expression "uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x715c))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x715c)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x715c)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x715c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x715c)" (( "(") (binary_expression "puStack_e8 + -0x715c" (identifier "puStack_e8") (+ "+") (number_literal "-0x715c")) () ")"))))) () ")")) (argument_list "(piVar13,piVar19)" (( "(") (identifier "piVar13") (, ",") (identifier "piVar19") () ")")))) (; ";")) (expression_statement "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x73fc)" (( "(") (binary_expression "puStack_e8 + -0x73fc" (identifier "puStack_e8") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (; ";")) (if_statement "if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" (if "if") (parenthesized_expression "(((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))))" (( "(") (binary_expression "((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&\n     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))" (parenthesized_expression "((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))" (( "(") (binary_expression "(iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (parenthesized_expression "(iVar9 == 4)" (( "(") (binary_expression "iVar9 == 4" (identifier "iVar9") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (( "(") (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x73fc)" (( "(") (binary_expression "puStack_e8 + -0x73fc" (identifier "puStack_e8") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (, ",") (binary_expression "iVar9 == 3" (identifier "iVar9") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))" (( "(") (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3))" (( "(") (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x73fc)" (( "(") (binary_expression "puStack_e8 + -0x73fc" (identifier "puStack_e8") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (, ",") (binary_expression "iVar9 == 4 ||\n      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (binary_expression "iVar9 == 4" (identifier "iVar9") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)" (( "(") (comma_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3" (assignment_expression "iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puStack_e8 + -0x73fc))(iVar12)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x73fc))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x73fc)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x73fc)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x73fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x73fc)" (( "(") (binary_expression "puStack_e8 + -0x73fc" (identifier "puStack_e8") (+ "+") (number_literal "-0x73fc")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (, ",") (binary_expression "iVar9 == 3" (identifier "iVar9") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(puStack_e8 + -0x7774))(7);\n    uVar15 = uVar18;\n    if ((int)uVar18 < 0) {\n      uVar15 = uVar18 + 0x3f;\n    }\n    pdVar16 = (double *)((int)uVar15 >> 6);\n    if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }\n    else {\n      pdVar16 = (double *)0x1;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "uVar15 = uVar18;" (assignment_expression "uVar15 = uVar18" (identifier "uVar15") (= "=") (identifier "uVar18")) (; ";")) (if_statement "if ((int)uVar18 < 0) {\n      uVar15 = 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      uVar15 = uVar18 + 0x3f;\n    }" ({ "{") (expression_statement "uVar15 = uVar18 + 0x3f;" (assignment_expression "uVar15 = uVar18 + 0x3f" (identifier "uVar15") (= "=") (binary_expression "uVar18 + 0x3f" (identifier "uVar18") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "pdVar16 = (double *)((int)uVar15 >> 6);" (assignment_expression "pdVar16 = (double *)((int)uVar15 >> 6)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((int)uVar15 >> 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)uVar15 >> 6)" (( "(") (binary_expression "(int)uVar15 >> 6" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "6")) () ")")))) (; ";")) (if_statement "if (extraout_v1_03 < (int)pdVar16) {\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }\n    else {\n      bVar1 = (int)uVar18 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1_03 < (int)pdVar16)" (( "(") (binary_expression "extraout_v1_03 < (int)pdVar16" (identifier "extraout_v1_03") (< "<") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")")) (compound_statement "{\n      pdStack_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      bVar1 = extraout_v1_06 < 2;\n      pdVar16 = pdStack_dc;\n    }" ({ "{") (expression_statement "pdStack_dc = pdVar16;" (assignment_expression "pdStack_dc = pdVar16" (identifier "pdStack_dc") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (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"))) (; ";")) (expression_statement "pdVar16 = pdStack_dc;" (assignment_expression "pdVar16 = pdStack_dc" (identifier "pdVar16") (= "=") (identifier "pdStack_dc")) (; ";")) (} "}")) (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_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\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_dc = pdVar16;\n      (**(code **)(puStack_e8 + -0x7774))(7);\n      pdVar16 = pdStack_dc;\n      if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }\n    }" ({ "{") (expression_statement "pdStack_dc = pdVar16;" (assignment_expression "pdStack_dc = pdVar16" (identifier "pdStack_dc") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "(**(code **)(puStack_e8 + -0x7774))(7);" (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "pdVar16 = pdStack_dc;" (assignment_expression "pdVar16 = pdStack_dc" (identifier "pdVar16") (= "=") (identifier "pdStack_dc")) (; ";")) (if_statement "if (extraout_v1_05 < (int)pdStack_dc) {\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }" (if "if") (parenthesized_expression "(extraout_v1_05 < (int)pdStack_dc)" (( "(") (binary_expression "extraout_v1_05 < (int)pdStack_dc" (identifier "extraout_v1_05") (< "<") (cast_expression "(int)pdStack_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_dc"))) () ")")) (compound_statement "{\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        goto LAB_000703a0;\n      }" ({ "{") (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";")) (goto_statement "goto LAB_000703a0;" (goto "goto") (statement_identifier "LAB_000703a0") (; ";")) (} "}"))) (} "}")) (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    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" (else "else") (compound_statement "{\n    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }\n    uVar28 = (*pcVar24)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }\n  }" ({ "{") (expression_statement "uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);" (assignment_expression "uVar28 = (**(code **)(puStack_e8 + -0x7774))(7)" (identifier "uVar28") (= "=") (call_expression "(**(code **)(puStack_e8 + -0x7774))(7)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7774))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x7774)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }\n    else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" (if "if") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        uVar28 = (*pcVar24)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;\n        pcVar24 = *(code **)(puStack_e8 + -0x7774);\n        if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }\n      }" ({ "{") (expression_statement "uVar28 = (*pcVar24)(7);" (assignment_expression "uVar28 = (*pcVar24)(7)" (identifier "uVar28") (= "=") (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00070230;" (goto "goto") (statement_identifier "LAB_00070230") (; ";"))) (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar28 < 2) {\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\n        }" (if "if") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          pdVar16 = (double *)0x1;\n          goto LAB_00070248;\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_00070248;" (goto "goto") (statement_identifier "LAB_00070248") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" (else "else") (compound_statement "{\nLAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);\n    }" ({ "{") (labeled_statement "LAB_00070230:\n      pcVar24 = *(code **)(puStack_e8 + -0x7774);" (statement_identifier "LAB_00070230") (: ":") (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x7774);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar28 = (*pcVar24)(7);" (assignment_expression "uVar28 = (*pcVar24)(7)" (identifier "uVar28") (= "=") (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }\n    else {\n      pdVar16 = (double *)0x2;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)" (( "(") (comma_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x7774)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_e8 + -0x7774)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7774)" (( "(") (binary_expression "puStack_e8 + -0x7774" (identifier "puStack_e8") (+ "+") (number_literal "-0x7774")) () ")"))))) (, ",") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\nLAB_000703a0:\n      (*pcVar24)(7);\n      pdVar16 = extraout_v1_04;\n    }" ({ "{") (labeled_statement "LAB_000703a0:\n      (*pcVar24)(7);" (statement_identifier "LAB_000703a0") (: ":") (expression_statement "(*pcVar24)(7);" (call_expression "(*pcVar24)(7)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";"))) (expression_statement "pdVar16 = extraout_v1_04;" (assignment_expression "pdVar16 = extraout_v1_04" (identifier "pdVar16") (= "=") (identifier "extraout_v1_04")) (; ";")) (} "}")) (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_00070248:\n  uVar20 = 0;" (statement_identifier "LAB_00070248") (: ":") (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar14 = &iStack_d8;" (assignment_expression "piVar14 = &iStack_d8" (identifier "piVar14") (= "=") (pointer_expression "&iStack_d8" (& "&") (identifier "iStack_d8"))) (; ";")) (expression_statement "uStack_b8 = 1;" (assignment_expression "uStack_b8 = 1" (identifier "uStack_b8") (= "=") (number_literal "1")) (; ";")) (expression_statement "iStack_d8 = iVar12;" (assignment_expression "iStack_d8 = iVar12" (identifier "iStack_d8") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "piStack_d4 = piVar13;" (assignment_expression "piStack_d4 = piVar13" (identifier "piStack_d4") (= "=") (identifier "piVar13")) (; ";")) (expression_statement "iStack_d0 = iVar7;" (assignment_expression "iStack_d0 = iVar7" (identifier "iStack_d0") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piStack_cc = piVar19;" (assignment_expression "piStack_cc = piVar19" (identifier "piStack_cc") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "uStack_c8 = uVar5;" (assignment_expression "uStack_c8 = uVar5" (identifier "uStack_c8") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_c4 = uVar6;" (assignment_expression "uStack_c4 = uVar6" (identifier "uStack_c4") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uStack_c0 = uVar8;" (assignment_expression "uStack_c0 = uVar8" (identifier "uStack_c0") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uStack_bc = uVar18;" (assignment_expression "uStack_bc = uVar18" (identifier "uStack_bc") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "(**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);" (call_expression "(**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x7718))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x7718)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x7718)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x7718)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x7718)" (( "(") (binary_expression "puStack_e8 + -0x7718" (identifier "puStack_e8") (+ "+") (number_literal "-0x7718")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0)" (( "(") (binary_expression "*(int *)(puStack_e8 + -0x7f78) + 0x2dc0" (pointer_expression "*(int *)(puStack_e8 + -0x7f78)" (* "*") (cast_expression "(int *)(puStack_e8 + -0x7f78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_e8 + -0x7f78)" (( "(") (binary_expression "puStack_e8 + -0x7f78" (identifier "puStack_e8") (+ "+") (number_literal "-0x7f78")) () ")")))) (+ "+") (number_literal "0x2dc0")) () ")"))) (; ";")) (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" (identifier "uVar3") (= "=") (identifier "uStack_b8")) (; ";")) (expression_statement "(**(code **)(puStack_e8 + -0x79bc))(uVar6);" (call_expression "(**(code **)(puStack_e8 + -0x79bc))(uVar6)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x79bc))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x79bc)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x79bc)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x79bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x79bc)" (( "(") (binary_expression "puStack_e8 + -0x79bc" (identifier "puStack_e8") (+ "+") (number_literal "-0x79bc")) () ")"))))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_e8 + -0x79bc))(uVar5);" (call_expression "(**(code **)(puStack_e8 + -0x79bc))(uVar5)" (parenthesized_expression "(**(code **)(puStack_e8 + -0x79bc))" (( "(") (pointer_expression "**(code **)(puStack_e8 + -0x79bc)" (* "*") (pointer_expression "*(code **)(puStack_e8 + -0x79bc)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x79bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x79bc)" (( "(") (binary_expression "puStack_e8 + -0x79bc" (identifier "puStack_e8") (+ "+") (number_literal "-0x79bc")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (iStack_b4 == *piVar22) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(iStack_b4 == *piVar22)" (( "(") (binary_expression "iStack_b4 == *piVar22" (identifier "iStack_b4") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "pcVar24 = *(code **)(puStack_e8 + -0x784c);" (assignment_expression "pcVar24 = *(code **)(puStack_e8 + -0x784c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_e8 + -0x784c)" (* "*") (cast_expression "(code **)(puStack_e8 + -0x784c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_e8 + -0x784c)" (( "(") (binary_expression "puStack_e8 + -0x784c" (identifier "puStack_e8") (+ "+") (number_literal "-0x784c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = FUN_00070404;" (assignment_expression "pcVar25 = FUN_00070404" (identifier "pcVar25") (= "=") (identifier "FUN_00070404")) (; ";")) (expression_statement "iVar12 = iStack_b4;" (assignment_expression "iVar12 = iStack_b4" (identifier "iVar12") (= "=") (identifier "iStack_b4")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar21 = *(int **)(pcVar24 + 0x338e2c);" (assignment_expression "piVar21 = *(int **)(pcVar24 + 0x338e2c)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x338e2c)" (* "*") (cast_expression "(int **)(pcVar24 + 0x338e2c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338e2c)" (( "(") (binary_expression "pcVar24 + 0x338e2c" (identifier "pcVar24") (+ "+") (number_literal "0x338e2c")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(uint *)(iVar12 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar12 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {\n    uVar15 = piVar14[7];\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7])" (( "(") (binary_expression "*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]" (pointer_expression "*(uint *)(iVar12 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (cast_expression "(uint)piVar14[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar14[7]" (identifier "piVar14") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n    uVar15 = piVar14[7];\n  }" ({ "{") (expression_statement "uVar15 = piVar14[7];" (assignment_expression "uVar15 = piVar14[7]" (identifier "uVar15") (= "=") (subscript_expression "piVar14[7]" (identifier "piVar14") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar10 = *(uint *)(iVar12 + 0x18)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {\n    uVar10 = piVar14[6];\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6])" (( "(") (binary_expression "*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]" (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (cast_expression "(uint)piVar14[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar14[6]" (identifier "piVar14") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n    uVar10 = piVar14[6];\n  }" ({ "{") (expression_statement "uVar10 = piVar14[6];" (assignment_expression "uVar10 = piVar14[6]" (identifier "uVar10") (= "=") (subscript_expression "piVar14[6]" (identifier "piVar14") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "iStack_12c = *piVar21;" (assignment_expression "iStack_12c = *piVar21" (identifier "iStack_12c") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "uStack_128 = uVar3;" (assignment_expression "uStack_128 = uVar3" (identifier "uStack_128") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "piStack_124 = piVar13;" (assignment_expression "piStack_124 = piVar13" (identifier "piStack_124") (= "=") (identifier "piVar13")) (; ";")) (expression_statement "uStack_120 = uVar18;" (assignment_expression "uStack_120 = uVar18" (identifier "uStack_120") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "piStack_11c = piVar19;" (assignment_expression "piStack_11c = piVar19" (identifier "piStack_11c") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "uStack_118 = uVar8;" (assignment_expression "uStack_118 = uVar8" (identifier "uStack_118") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "piStack_114 = piVar22;" (assignment_expression "piStack_114 = piVar22" (identifier "piStack_114") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "uStack_110 = uVar5;" (assignment_expression "uStack_110 = uVar5" (identifier "uStack_110") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_10c = uVar6;" (assignment_expression "uStack_10c = uVar6" (identifier "uStack_10c") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iStack_108 = iVar7;" (assignment_expression "iStack_108 = iVar7" (identifier "iStack_108") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "pcStack_104 = pcVar25;" (assignment_expression "pcStack_104 = pcVar25" (identifier "pcStack_104") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "uVar5 = (**(code **)(pcVar24 + 0x339350))();" (assignment_expression "uVar5 = (**(code **)(pcVar24 + 0x339350))()" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar24 + 0x339350))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x339350))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x339350)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x339350)" (* "*") (cast_expression "(code **)(pcVar24 + 0x339350)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x339350)" (( "(") (binary_expression "pcVar24 + 0x339350" (identifier "pcVar24") (+ "+") (number_literal "0x339350")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);" (assignment_expression "uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar24 + 0x339350))(piVar14,uVar20)" (parenthesized_expression "(**(code **)(pcVar24 + 0x339350))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x339350)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x339350)" (* "*") (cast_expression "(code **)(pcVar24 + 0x339350)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x339350)" (( "(") (binary_expression "pcVar24 + 0x339350" (identifier "pcVar24") (+ "+") (number_literal "0x339350")) () ")"))))) () ")")) (argument_list "(piVar14,uVar20)" (( "(") (identifier "piVar14") (, ",") (identifier "uVar20") () ")")))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x3390b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x3390b0)" (( "(") (binary_expression "pcVar24 + 0x3390b0" (identifier "pcVar24") (+ "+") (number_literal "0x3390b0")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (; ";")) (if_statement "if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }\n  else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" (if "if") (parenthesized_expression "(((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))))" (( "(") (binary_expression "((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&\n     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))" (parenthesized_expression "((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))" (( "(") (binary_expression "(iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (parenthesized_expression "(iVar7 == 4)" (( "(") (binary_expression "iVar7 == 4" (identifier "iVar7") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x3390b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x3390b0)" (( "(") (binary_expression "pcVar24 + 0x3390b0" (identifier "pcVar24") (+ "+") (number_literal "0x3390b0")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (, ",") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))" (( "(") (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3))" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x3390b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x3390b0)" (( "(") (binary_expression "pcVar24 + 0x3390b0" (identifier "pcVar24") (+ "+") (number_literal "0x3390b0")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (, ",") (binary_expression "iVar7 == 4 ||\n      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (binary_expression "iVar7 == 4" (identifier "iVar7") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3" (assignment_expression "iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar24 + 0x3390b0))(iVar12)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3390b0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x3390b0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x3390b0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x3390b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x3390b0)" (( "(") (binary_expression "pcVar24 + 0x3390b0" (identifier "pcVar24") (+ "+") (number_literal "0x3390b0")) () ")"))))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (, ",") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar24 + 0x338d38))(7);\n    uVar18 = uVar15;\n    if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }\n    iVar7 = (int)uVar18 >> 6;\n    if (extraout_v1_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 1;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338d38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" (identifier "uVar18") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n      uVar18 = uVar15 + 0x3f;\n    }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar18 = uVar15 + 0x3f;\n    }" ({ "{") (expression_statement "uVar18 = uVar15 + 0x3f;" (assignment_expression "uVar18 = uVar15 + 0x3f" (identifier "uVar18") (= "=") (binary_expression "uVar15 + 0x3f" (identifier "uVar15") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (int)uVar18 >> 6;" (assignment_expression "iVar7 = (int)uVar18 >> 6" (identifier "iVar7") (= "=") (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_07 < iVar7) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }\n    else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1_07 < iVar7)" (( "(") (binary_expression "extraout_v1_07 < iVar7" (identifier "extraout_v1_07") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      bVar1 = extraout_v1_10 < 2;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338d38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "bVar1 = extraout_v1_10 < 2;" (assignment_expression "bVar1 = extraout_v1_10 < 2" (identifier "bVar1") (= "=") (binary_expression "extraout_v1_10 < 2" (identifier "extraout_v1_10") (< "<") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = (int)uVar15 < 0x80;\n    }" (else "else") (compound_statement "{\n      bVar1 = (int)uVar15 < 0x80;\n    }" ({ "{") (expression_statement "bVar1 = (int)uVar15 < 0x80;" (assignment_expression "bVar1 = (int)uVar15 < 0x80" (identifier "bVar1") (= "=") (binary_expression "(int)uVar15 < 0x80" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }\n    else {\n      iVar7 = 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 **)(pcVar24 + 0x338d38))(7);\n      if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }\n    }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x338d38))(7);" (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338d38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (if_statement "if (extraout_v1_09 < iVar7) {\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }" (if "if") (parenthesized_expression "(extraout_v1_09 < iVar7)" (( "(") (binary_expression "extraout_v1_09 < iVar7" (identifier "extraout_v1_09") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        goto LAB_000707b4;\n      }" ({ "{") (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) (; ";")) (goto_statement "goto LAB_000707b4;" (goto "goto") (statement_identifier "LAB_000707b4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar7 = 1;\n    }" (else "else") (compound_statement "{\n      iVar7 = 1;\n    }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" (else "else") (compound_statement "{\n    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);\n    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }\n    uVar28 = (*pcVar25)(7);\n    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }\n  }" ({ "{") (expression_statement "uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);" (assignment_expression "uVar28 = (**(code **)(pcVar24 + 0x338d38))(7)" (identifier "uVar28") (= "=") (call_expression "(**(code **)(pcVar24 + 0x338d38))(7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338d38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) == 0) {\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }\n    else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n      if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar28 < 2) {\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }" (if "if") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        uVar28 = (*pcVar25)(7);\n        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;\n        pcVar25 = *(code **)(pcVar24 + 0x338d38);\n        if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }\n      }" ({ "{") (expression_statement "uVar28 = (*pcVar25)(7);" (assignment_expression "uVar28 = (*pcVar25)(7)" (identifier "uVar28") (= "=") (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000704f8;" (goto "goto") (statement_identifier "LAB_000704f8") (; ";"))) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar28 < 2) {\n          iVar7 = 1;\n          goto LAB_00070510;\n        }" (if "if") (parenthesized_expression "((uint)uVar28 < 2)" (( "(") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          iVar7 = 1;\n          goto LAB_00070510;\n        }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00070510;" (goto "goto") (statement_identifier "LAB_00070510") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" (else "else") (compound_statement "{\nLAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);\n    }" ({ "{") (labeled_statement "LAB_000704f8:\n      pcVar25 = *(code **)(pcVar24 + 0x338d38);" (statement_identifier "LAB_000704f8") (: ":") (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x338d38);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar28 = (*pcVar25)(7);" (assignment_expression "uVar28 = (*pcVar25)(7)" (identifier "uVar28") (= "=") (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }\n    else {\n      iVar7 = 2;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar28 >> 0x20) == 0) &&\n       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)" (parenthesized_expression "((int)((ulonglong)uVar28 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar28 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)" (( "(") (comma_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x338d38)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x338d38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d38)" (( "(") (binary_expression "pcVar24 + 0x338d38" (identifier "pcVar24") (+ "+") (number_literal "0x338d38")) () ")"))))) (, ",") (binary_expression "(uint)uVar28 < 2" (cast_expression "(uint)uVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar28")) (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\nLAB_000707b4:\n      (*pcVar25)(7);\n      iVar7 = extraout_v1_08;\n    }" ({ "{") (labeled_statement "LAB_000707b4:\n      (*pcVar25)(7);" (statement_identifier "LAB_000707b4") (: ":") (expression_statement "(*pcVar25)(7);" (call_expression "(*pcVar25)(7)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";"))) (expression_statement "iVar7 = extraout_v1_08;" (assignment_expression "iVar7 = extraout_v1_08" (identifier "iVar7") (= "=") (identifier "extraout_v1_08")) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = 2;\n    }" (else "else") (compound_statement "{\n      iVar7 = 2;\n    }" ({ "{") (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" (identifier "iVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00070510:\n  uStack_134 = 1;" (statement_identifier "LAB_00070510") (: ":") (expression_statement "uStack_134 = 1;" (assignment_expression "uStack_134 = 1" (identifier "uStack_134") (= "=") (number_literal "1")) (; ";"))) (expression_statement "uStack_15c = 0;" (assignment_expression "uStack_15c = 0" (identifier "uStack_15c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" (identifier "uStack_160") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" (identifier "uStack_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_158 = iVar12;" (assignment_expression "iStack_158 = iVar12" (identifier "iStack_158") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "piStack_154 = piVar14;" (assignment_expression "piStack_154 = piVar14" (identifier "piStack_154") (= "=") (identifier "piVar14")) (; ";")) (expression_statement "pdStack_150 = pdVar16;" (assignment_expression "pdStack_150 = pdVar16" (identifier "pdStack_150") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "uStack_14c = uVar20;" (assignment_expression "uStack_14c = uVar20" (identifier "uStack_14c") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "uStack_148 = uVar5;" (assignment_expression "uStack_148 = uVar5" (identifier "uStack_148") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_144 = uVar6;" (assignment_expression "uStack_144 = uVar6" (identifier "uStack_144") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uStack_13c = uVar10;" (assignment_expression "uStack_13c = uVar10" (identifier "uStack_13c") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uStack_138 = uVar15;" (assignment_expression "uStack_138 = uVar15" (identifier "uStack_138") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);" (call_expression "(**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338d94))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338d94)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338d94)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338d94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338d94)" (( "(") (binary_expression "pcVar24 + 0x338d94" (identifier "pcVar24") (+ "+") (number_literal "0x338d94")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x338534) + 0x2020" (pointer_expression "*(int *)(pcVar24 + 0x338534)" (* "*") (cast_expression "(int *)(pcVar24 + 0x338534)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x338534)" (( "(") (binary_expression "pcVar24 + 0x338534" (identifier "pcVar24") (+ "+") (number_literal "0x338534")) () ")")))) (+ "+") (number_literal "0x2020")) (, ",") (pointer_expression "&uStack_160" (& "&") (identifier "uStack_160")) (, ",") (identifier "iVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar4 = uStack_134;" (assignment_expression "uVar4 = uStack_134" (identifier "uVar4") (= "=") (identifier "uStack_134")) (; ";")) (expression_statement "uVar20 = uStack_15c;" (assignment_expression "uVar20 = uStack_15c" (identifier "uVar20") (= "=") (identifier "uStack_15c")) (; ";")) (expression_statement "uVar3 = uStack_160;" (assignment_expression "uVar3 = uStack_160" (identifier "uVar3") (= "=") (identifier "uStack_160")) (; ";")) (expression_statement "dVar26 = (double)CONCAT44(uStack_160,uStack_15c);" (assignment_expression "dVar26 = (double)CONCAT44(uStack_160,uStack_15c)" (identifier "dVar26") (= "=") (cast_expression "(double)CONCAT44(uStack_160,uStack_15c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_160,uStack_15c)" (identifier "CONCAT44") (argument_list "(uStack_160,uStack_15c)" (( "(") (identifier "uStack_160") (, ",") (identifier "uStack_15c") () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x338af0))(uVar6);" (call_expression "(**(code **)(pcVar24 + 0x338af0))(uVar6)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338af0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338af0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338af0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338af0)" (( "(") (binary_expression "pcVar24 + 0x338af0" (identifier "pcVar24") (+ "+") (number_literal "0x338af0")) () ")"))))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x338af0))(uVar5);" (call_expression "(**(code **)(pcVar24 + 0x338af0))(uVar5)" (parenthesized_expression "(**(code **)(pcVar24 + 0x338af0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338af0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338af0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338af0)" (( "(") (binary_expression "pcVar24 + 0x338af0" (identifier "pcVar24") (+ "+") (number_literal "0x338af0")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (0.0 <= dVar26) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }\n  else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" (if "if") (parenthesized_expression "(0.0 <= dVar26)" (( "(") (binary_expression "0.0 <= dVar26" (number_literal "0.0") (<= "<=") (identifier "dVar26")) () ")")) (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);\n    dStack_168 = dVar26;\n  }" ({ "{") (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "dStack_168 = dVar26;" (assignment_expression "dStack_168 = dVar26" (identifier "dStack_168") (= "=") (identifier "dVar26")) (; ";")) (} "}")) (else_clause "else {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" (else "else") (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);\n    dStack_168 = -(double)CONCAT44(uVar3,uVar20);\n  }" ({ "{") (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1a78)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1a78" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x1a78")) () ")"))))) (; ";")) (expression_statement "dStack_168 = -(double)CONCAT44(uVar3,uVar20);" (assignment_expression "dStack_168 = -(double)CONCAT44(uVar3,uVar20)" (identifier "dStack_168") (= "=") (unary_expression "-(double)CONCAT44(uVar3,uVar20)" (- "-") (cast_expression "(double)CONCAT44(uVar3,uVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar3,uVar20)" (identifier "CONCAT44") (argument_list "(uVar3,uVar20)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar20") () ")")))))) (; ";")) (} "}")))) (if_statement "if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }\n  else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168" (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x13f8" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x13f8")) () ")")))) (<= "<=") (identifier "dStack_168")) () ")")) (compound_statement "{\n    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;\n  }" ({ "{") (expression_statement "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;" (assignment_expression "dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26" (identifier "dVar27") (= "=") (binary_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26" (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar26"))) (; ";")) (} "}")) (else_clause "else {\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" (else "else") (compound_statement "{\n    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);\n  }" ({ "{") (expression_statement "dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);" (assignment_expression "dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (identifier "dVar27") (= "=") (binary_expression "dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (identifier "dVar27") (/ "/") (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x13f8)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x13f8" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x13f8")) () ")")))))) (; ";")) (} "}")))) (expression_statement "pdVar17 = pdVar16;" (assignment_expression "pdVar17 = pdVar16" (identifier "pdVar17") (= "=") (identifier "pdVar16")) (; ";")) (do_statement "do {\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  } while (pdVar16 + 0x41 != pdVar11);" (do "do") (compound_statement "{\n    pdVar11 = pdVar17 + 1;\n    *pdVar17 = *pdVar17 * dVar27;\n    pdVar17 = pdVar11;\n  }" ({ "{") (expression_statement "pdVar11 = pdVar17 + 1;" (assignment_expression "pdVar11 = pdVar17 + 1" (identifier "pdVar11") (= "=") (binary_expression "pdVar17 + 1" (identifier "pdVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar17 = *pdVar17 * dVar27;" (assignment_expression "*pdVar17 = *pdVar17 * dVar27" (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) (= "=") (binary_expression "*pdVar17 * dVar27" (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17")) (* "*") (identifier "dVar27"))) (; ";")) (expression_statement "pdVar17 = pdVar11;" (assignment_expression "pdVar17 = pdVar11" (identifier "pdVar17") (= "=") (identifier "pdVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar16 + 0x41 != pdVar11)" (( "(") (binary_expression "pdVar16 + 0x41 != pdVar11" (binary_expression "pdVar16 + 0x41" (identifier "pdVar16") (+ "+") (number_literal "0x41")) (!= "!=") (identifier "pdVar11")) () ")")) (; ";")) (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 *)(iVar12 + 0x2c0)) {\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar12 + 0x2c0))" (( "(") (binary_expression "0 < *(int *)(iVar12 + 0x2c0)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar12 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar12 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c0)" (( "(") (binary_expression "iVar12 + 0x2c0" (identifier "iVar12") (+ "+") (number_literal "0x2c0")) () ")"))))) () ")")) (compound_statement "{\n    piVar19 = *(int **)(iVar12 + 0x2d0);\n    piVar13 = piVar19;\n    do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);\n    if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }\n  }" ({ "{") (expression_statement "piVar19 = *(int **)(iVar12 + 0x2d0);" (assignment_expression "piVar19 = *(int **)(iVar12 + 0x2d0)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(iVar12 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar12 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x2d0)" (( "(") (binary_expression "iVar12 + 0x2d0" (identifier "iVar12") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar13 = piVar19;" (assignment_expression "piVar13 = piVar19" (identifier "piVar13") (= "=") (identifier "piVar19")) (; ";")) (do_statement "do {\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);" (do "do") (compound_statement "{\n      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }\n      piVar13 = piVar13 + 3;\n    }" ({ "{") (if_statement "if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {\n        pdVar17 = (double *)((int)pdVar17 + 1);\n      }" (if "if") (parenthesized_expression "((piVar19[*piVar13 * 3 + 1] & 2U) != 0)" (( "(") (binary_expression "(piVar19[*piVar13 * 3 + 1] & 2U) != 0" (parenthesized_expression "(piVar19[*piVar13 * 3 + 1] & 2U)" (( "(") (binary_expression "piVar19[*piVar13 * 3 + 1] & 2U" (subscript_expression "piVar19[*piVar13 * 3 + 1]" (identifier "piVar19") ([ "[") (binary_expression "*piVar13 * 3 + 1" (binary_expression "*piVar13 * 3" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (* "*") (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 "piVar13 = piVar13 + 3;" (assignment_expression "piVar13 = piVar13 + 3" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 3" (identifier "piVar13") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3)" (( "(") (binary_expression "piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3" (identifier "piVar13") (!= "!=") (binary_expression "piVar19 + *(int *)(iVar12 + 0x2c0) * 3" (identifier "piVar19") (+ "+") (binary_expression "*(int *)(iVar12 + 0x2c0) * 3" (pointer_expression "*(int *)(iVar12 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar12 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c0)" (( "(") (binary_expression "iVar12 + 0x2c0" (identifier "iVar12") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "3")))) () ")")) (; ";")) (if_statement "if (pdVar17 != (double *)0x0) {\n      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\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      dVar26 = (double)(int)pdVar17;\n      if ((int)pdVar17 < 0) {\n        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }\n      goto LAB_00070664;\n    }" ({ "{") (expression_statement "dVar26 = (double)(int)pdVar17;" (assignment_expression "dVar26 = (double)(int)pdVar17" (identifier "dVar26") (= "=") (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        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 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        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);\n      }" ({ "{") (expression_statement "dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);" (assignment_expression "dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" (identifier "dVar26") (= "=") (binary_expression "dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" (identifier "dVar26") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1418)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1418" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (goto_statement "goto LAB_00070664;" (goto "goto") (statement_identifier "LAB_00070664") (; ";")) (} "}"))) (} "}"))) (expression_statement "dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);" (assignment_expression "dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x3384dc) + 0x1438)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x3384dc) + 0x1438" (pointer_expression "*(int *)(pcVar24 + 0x3384dc)" (* "*") (cast_expression "(int *)(pcVar24 + 0x3384dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x3384dc)" (( "(") (binary_expression "pcVar24 + 0x3384dc" (identifier "pcVar24") (+ "+") (number_literal "0x3384dc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (labeled_statement "LAB_00070664:\n  dVar26 = pdVar16[0x40] / dVar26;" (statement_identifier "LAB_00070664") (: ":") (expression_statement "dVar26 = pdVar16[0x40] / dVar26;" (assignment_expression "dVar26 = pdVar16[0x40] / dVar26" (identifier "dVar26") (= "=") (binary_expression "pdVar16[0x40] / dVar26" (subscript_expression "pdVar16[0x40]" (identifier "pdVar16") ([ "[") (number_literal "0x40") (] "]")) (/ "/") (identifier "dVar26"))) (; ";"))) (expression_statement "pdVar16[0x40] = dVar26;" (assignment_expression "pdVar16[0x40] = dVar26" (subscript_expression "pdVar16[0x40]" (identifier "pdVar16") ([ "[") (number_literal "0x40") (] "]")) (= "=") (identifier "dVar26")) (; ";")) (expression_statement "dVar27 = SQRT(dVar26);" (assignment_expression "dVar27 = SQRT(dVar26)" (identifier "dVar27") (= "=") (call_expression "SQRT(dVar26)" (identifier "SQRT") (argument_list "(dVar26)" (( "(") (identifier "dVar26") () ")")))) (; ";")) (if_statement "if (dVar26 < 0.0) {\n    (**(code **)(pcVar24 + 0x33907c))();\n  }" (if "if") (parenthesized_expression "(dVar26 < 0.0)" (( "(") (binary_expression "dVar26 < 0.0" (identifier "dVar26") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar24 + 0x33907c))();\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x33907c))();" (call_expression "(**(code **)(pcVar24 + 0x33907c))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x33907c))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x33907c)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x33907c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x33907c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x33907c)" (( "(") (binary_expression "pcVar24 + 0x33907c" (identifier "pcVar24") (+ "+") (number_literal "0x33907c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = *piVar21;" (assignment_expression "iVar7 = *piVar21" (identifier "iVar7") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "pdVar16[0x40] = dVar27;" (assignment_expression "pdVar16[0x40] = dVar27" (subscript_expression "pdVar16[0x40]" (identifier "pdVar16") ([ "[") (number_literal "0x40") (] "]")) (= "=") (identifier "dVar27")) (; ";")) (if_statement "if (iStack_12c != iVar7) {\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(iStack_12c != iVar7)" (( "(") (binary_expression "iStack_12c != iVar7" (identifier "iStack_12c") (!= "!=") (identifier "iVar7")) () ")")) (compound_statement "{\n    pcVar24 = *(code **)(pcVar24 + 0x338c60);\n    (*pcVar24)();\n    dVar26 = 0.0;\n    uVar5 = FUN_0006fd44();\n    pdVar16 = pdVar17;\n    do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);\n    return uVar5;\n  }" ({ "{") (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x338c60);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x338c60)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x338c60)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338c60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338c60)" (( "(") (binary_expression "pcVar24 + 0x338c60" (identifier "pcVar24") (+ "+") (number_literal "0x338c60")) () ")"))))) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar26 = 0.0;" (assignment_expression "dVar26 = 0.0" (identifier "dVar26") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "uVar5 = FUN_0006fd44();" (assignment_expression "uVar5 = FUN_0006fd44()" (identifier "uVar5") (= "=") (call_expression "FUN_0006fd44()" (identifier "FUN_0006fd44") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" (identifier "pdVar16") (= "=") (identifier "pdVar17")) (; ";")) (do_statement "do {\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    } while (pdVar11 != pdVar17 + 0x41);" (do "do") (compound_statement "{\n      dVar27 = SQRT(*pdVar16);\n      if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }\n      pdVar11 = pdVar16 + 1;\n      *pdVar16 = dVar27;\n      pdVar16 = pdVar11;\n    }" ({ "{") (expression_statement "dVar27 = SQRT(*pdVar16);" (assignment_expression "dVar27 = SQRT(*pdVar16)" (identifier "dVar27") (= "=") (call_expression "SQRT(*pdVar16)" (identifier "SQRT") (argument_list "(*pdVar16)" (( "(") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) () ")")))) (; ";")) (if_statement "if (*pdVar16 < dVar26) {\n        (**(code **)(pcVar24 + 0x338c54))();\n      }" (if "if") (parenthesized_expression "(*pdVar16 < dVar26)" (( "(") (binary_expression "*pdVar16 < dVar26" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (< "<") (identifier "dVar26")) () ")")) (compound_statement "{\n        (**(code **)(pcVar24 + 0x338c54))();\n      }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x338c54))();" (call_expression "(**(code **)(pcVar24 + 0x338c54))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x338c54))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x338c54)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x338c54)" (* "*") (cast_expression "(code **)(pcVar24 + 0x338c54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x338c54)" (( "(") (binary_expression "pcVar24 + 0x338c54" (identifier "pcVar24") (+ "+") (number_literal "0x338c54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pdVar11 = pdVar16 + 1;" (assignment_expression "pdVar11 = pdVar16 + 1" (identifier "pdVar11") (= "=") (binary_expression "pdVar16 + 1" (identifier "pdVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar16 = dVar27;" (assignment_expression "*pdVar16 = dVar27" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (= "=") (identifier "dVar27")) (; ";")) (expression_statement "pdVar16 = pdVar11;" (assignment_expression "pdVar16 = pdVar11" (identifier "pdVar16") (= "=") (identifier "pdVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar11 != pdVar17 + 0x41)" (( "(") (binary_expression "pdVar11 != pdVar17 + 0x41" (identifier "pdVar11") (!= "!=") (binary_expression "pdVar17 + 0x41" (identifier "pdVar17") (+ "+") (number_literal "0x41"))) () ")")) (; ";")) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

/* WARNING: Variable defined which should be unmapped: channel_distortion */
/* 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 *image,type_2 *reconstruct_image,double *var_11,type_3 *exception)

{
  bool var_6;
  type_4 *puVar2;
  type_1 MVar3;
  type_5 uVar4;
  type_5 uVar5;
  int var_1;
  type_6 PVar7;
  type_7 uVar8;
  double *var_28;
  type_8 *var_16;
  int var_19;
  int var_3;
  int extraout_v1_00;
  int var_7;
  int var_5;
  int var_22;
  double *extraout_v1_04;
  int var_24;
  int var_23;
  type_3 *pEVar12;
  type_2 *var_31;
  int var_25;
  int extraout_v1_08;
  int var_27;
  int var_26;
  type_8 *var_17;
  type_2 *var_29;
  int var_18;
  type_9 PVar16;
  double *var_10;
  double *var_12;
  type_7 uVar19;
  type_8 *var_13;
  type_5 uVar21;
  type_3 *exception_00;
  type_9 var_21;
  type_7 var_2;
  int *piVar24;
  int *piVar25;
  type_10 *var_20;
  type_10 *pcVar27;
  double var_9;
  double dVar29;
  type_11 uVar30;
  double var_8 [65];
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  var_2 = image->rows;
  if (image->rows <= reconstruct_image->rows) {
    var_2 = reconstruct_image->rows;
  }
  uVar8 = image->columns;
  if (image->columns <= reconstruct_image->columns) {
    uVar8 = reconstruct_image->columns;
  }
  var_8[0x3c]._0_4_ = &_gp;
  var_18 = *(int *)PTR___stack_chk_guard_003a9230;
  uVar4 = (*(type_10 *)PTR_AcquireVirtualCacheView_003a9754)(image,exception);
  uVar5 = (**(type_10 **)(var_8[0x3c]._0_4_ + -0x715c))(reconstruct_image,exception);
  var_1 = (**(type_10 **)(var_8[0x3c]._0_4_ + -0x73fc))(image);
  if (var_1 == 4) {
LAB_0006fff0:
    var_1 = (**(type_10 **)(var_8[0x3c]._0_4_ + -0x73fc))(image);
    if (var_1 != 4) {
      var_1 = (**(type_10 **)(var_8[0x3c]._0_4_ + -0x73fc))(image);
      if (var_1 != 3) goto LAB_0006fe24;
    }
    (**(type_10 **)(var_8[0x3c]._0_4_ + -0x7774))(7);
    uVar19 = var_2;
    if ((int)var_2 < 0) {
      uVar19 = var_2 + 0x3f;
    }
    var_1 = (int)uVar19 >> 6;
    if (var_3 < var_1) {
      var_8[0x3d] = (double)var_4(var_1,var_8[0x3d]._4_4_);
      (**(type_10 **)(var_8[0x3c]._0_4_ + -0x7774))(7);
      var_6 = var_5 < 2;
      var_1 = var_8[0x3d]._0_4_;
    }
    else {
      var_6 = (int)var_2 < 0x80;
    }
    if ((bool)(var_6 ^ 1)) {
      var_8[0x3d] = (double)var_4(var_1,var_8[0x3d]._4_4_);
      (**(type_10 **)(var_8[0x3c]._0_4_ + -0x7774))(7);
      var_1 = var_8[0x3d]._0_4_;
      if (var_7 < var_8[0x3d]._0_4_) {
        var_20 = *(type_10 **)(var_8[0x3c]._0_4_ + -0x7774);
        goto LAB_000700d8;
      }
    }
    else {
      var_1 = 1;
    }
  }
  else {
    var_1 = (**(type_10 **)(var_8[0x3c]._0_4_ + -0x73fc))(image);
    if (var_1 == 3) goto LAB_0006fff0;
LAB_0006fe24:
    uVar30 = (**(type_10 **)(var_8[0x3c]._0_4_ + -0x7774))(7);
    if ((int)((type_12)uVar30 >> 0x20) == 0) {
      var_20 = *(type_10 **)(var_8[0x3c]._0_4_ + -0x7774);
      if ((type_7)uVar30 < 2) {
        uVar30 = (*var_20)(7);
        if ((int)((type_12)uVar30 >> 0x20) != 0) goto LAB_0006fe38;
        var_20 = *(type_10 **)(var_8[0x3c]._0_4_ + -0x7774);
        if ((type_7)uVar30 < 2) {
          var_1 = 1;
          goto LAB_0006fe50;
        }
      }
    }
    else {
LAB_0006fe38:
      var_20 = *(type_10 **)(var_8[0x3c]._0_4_ + -0x7774);
    }
    uVar30 = (*var_20)(7);
    if (((int)((type_12)uVar30 >> 0x20) == 0) &&
       (var_20 = *(type_10 **)(var_8[0x3c]._0_4_ + -0x7774), (type_7)uVar30 < 2)) {
LAB_000700d8:
      (*var_20)(7);
      var_1 = extraout_v1_00;
    }
    else {
      var_1 = 2;
    }
  }
LAB_0006fe50:
  var_13 = (type_8 *)0x0;
  var_17 = (type_8 *)(var_8 + 0x3f);
  var_8[0x3f]._4_4_ = 0;
  var_8[0x3f]._0_4_ = 0;
  var_8[0x40]._0_4_ = image;
  var_8[0x40]._4_4_ = reconstruct_image;
  (**(type_10 **)(var_8[0x3c]._0_4_ + -0x7718))
            (*(int *)(var_8[0x3c]._0_4_ + -0x7f78) + 0x2948,var_17,var_1);
  var_8[0x3d] =
       (double)var_4(var_8[0x3f]._0_4_,var_8[0x3f]._4_4_);
  (**(type_10 **)(var_8[0x3c]._0_4_ + -0x79bc))(uVar5);
  (**(type_10 **)(var_8[0x3c]._0_4_ + -0x79bc))(uVar4);
  if (0.0 <= var_8[0x3d]) {
    var_9 = *(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x1438);
    var_8[0x3e] = var_8[0x3d];
  }
  else {
    var_9 = *(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x1a78);
    var_8[0x3e] = -var_8[0x3d];
  }
  if (*(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x13f8) <=
      var_8[0x3e]) {
    var_9 = *(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x1438) /
             var_8[0x3d];
  }
  else {
    var_9 = var_9 / *(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x13f8);
  }
  var_10 = var_11;
  do {
    var_12 = var_10 + 1;
    *var_10 = *var_10 * var_9;
    var_10 = var_12;
  } while (var_11 + 0x41 != var_12);
  var_1 = 0;
  if ((int)image->number_channels < 1) {
LAB_0007006c:
    var_9 = *(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x1438);
  }
  else {
    var_13 = image->channel_map;
    var_17 = var_13 + image->number_channels;
    var_16 = var_13;
    do {
      if ((var_13[var_16->channel].traits & var_14) != var_15) {
        var_1 = var_1 + 1;
      }
      var_16 = var_16 + 1;
    } while (var_16 != var_17);
    if (var_1 == 0) goto LAB_0007006c;
    var_9 = (double)var_1;
    if (var_1 < 0) {
      var_9 = var_9 + *(double *)(*(int *)(var_8[0x3c]._0_4_ + -0x7fd0) + 0x1418);
    }
  }
  var_19 = *(int *)puVar2;
  var_11[0x40] = var_11[0x40] / var_9;
  if (var_18 == var_19) {
    return MagickTrue;
  }
  var_20 = *(type_10 **)(var_8[0x3c]._0_4_ + -0x784c);
  pcVar27 = GetPeakAbsoluteDistortion;
  (*var_20)();
  var_8[0x2e]._0_4_ = var_20 + 0x340774;
  var_8[0x36]._4_4_ = 1;
  var_8[0x36]._0_4_ = puVar2;
  piVar25 = *(int **)(var_20 + 0x3390f4);
  var_21 = *(type_9 *)(var_18 + 0x1c);
  if (*(type_9 *)(var_18 + 0x1c) <= var_17[2].traits) {
    var_21 = var_17[2].traits;
  }
  PVar7 = *(type_6 *)(var_18 + 0x18);
  if (*(type_6 *)(var_18 + 0x18) <= var_17[2].channel) {
    PVar7 = var_17[2].channel;
  }
  var_8[0x34]._4_4_ = *piVar25;
  var_8[0x35]._0_4_ = image;
  var_8[0x35]._4_4_ = var_11;
  var_8[0x37]._0_4_ = var_2;
  var_8[0x37]._4_4_ = exception;
  var_8[0x38]._0_4_ = uVar8;
  var_8[0x38]._4_4_ = uVar4;
  var_8[0x39]._0_4_ = uVar5;
  var_8[0x39]._4_4_ = pcVar27;
  uVar4 = (**(type_10 **)(var_20 + 0x339618))();
  uVar5 = (**(type_10 **)(var_8[0x2e]._0_4_ + -0x715c))(var_17,var_13);
  var_19 = (**(type_10 **)(var_8[0x2e]._0_4_ + -0x73fc))(var_18);
  if (var_19 == 4) {
LAB_000702f0:
    var_19 = (**(type_10 **)(var_8[0x2e]._0_4_ + -0x73fc))(var_18);
    if (var_19 != 4) {
      var_19 = (**(type_10 **)(var_8[0x2e]._0_4_ + -0x73fc))(var_18);
      if (var_19 != 3) goto LAB_0007021c;
    }
    (**(type_10 **)(var_8[0x2e]._0_4_ + -0x7774))(7);
    PVar16 = var_21;
    if ((int)var_21 < 0) {
      PVar16 = var_21 + 0x3f;
    }
    var_10 = (double *)((int)PVar16 >> 6);
    if (var_22 < (int)var_10) {
      var_8[0x2f]._4_4_ = var_10;
      (**(type_10 **)(var_8[0x2e]._0_4_ + -0x7774))(7);
      var_6 = var_23 < 2;
      var_10 = var_8[0x2f]._4_4_;
    }
    else {
      var_6 = (int)var_21 < 0x80;
    }
    if ((bool)(var_6 ^ 1)) {
      var_8[0x2f]._4_4_ = var_10;
      (**(type_10 **)(var_8[0x2e]._0_4_ + -0x7774))(7);
      var_10 = var_8[0x2f]._4_4_;
      if (var_24 < (int)var_8[0x2f]._4_4_) {
        var_20 = *(type_10 **)(var_8[0x2e]._0_4_ + -0x7774);
        goto LAB_000703a0;
      }
    }
    else {
      var_10 = (double *)0x1;
    }
  }
  else {
    var_19 = (**(type_10 **)(var_8[0x2e]._0_4_ + -0x73fc))(var_18);
    if (var_19 == 3) goto LAB_000702f0;
LAB_0007021c:
    uVar30 = (**(type_10 **)(var_8[0x2e]._0_4_ + -0x7774))(7);
    if ((int)((type_12)uVar30 >> 0x20) == 0) {
      var_20 = *(type_10 **)(var_8[0x2e]._0_4_ + -0x7774);
      if ((type_7)uVar30 < 2) {
        uVar30 = (*var_20)(7);
        if ((int)((type_12)uVar30 >> 0x20) != 0) goto LAB_00070230;
        var_20 = *(type_10 **)(var_8[0x2e]._0_4_ + -0x7774);
        if ((type_7)uVar30 < 2) {
          var_10 = (double *)0x1;
          goto LAB_00070248;
        }
      }
    }
    else {
LAB_00070230:
      var_20 = *(type_10 **)(var_8[0x2e]._0_4_ + -0x7774);
    }
    uVar30 = (*var_20)(7);
    if (((int)((type_12)uVar30 >> 0x20) == 0) &&
       (var_20 = *(type_10 **)(var_8[0x2e]._0_4_ + -0x7774), (type_7)uVar30 < 2)) {
LAB_000703a0:
      (*var_20)(7);
      var_10 = extraout_v1_04;
    }
    else {
      var_10 = (double *)0x2;
    }
  }
LAB_00070248:
  uVar21 = 0;
  var_12 = var_8 + 0x30;
  var_8[0x34]._0_4_ = MagickTrue;
  var_8[0x30]._0_4_ = var_18;
  var_8[0x30]._4_4_ = var_17;
  var_8[0x31]._0_4_ = var_1;
  var_8[0x31]._4_4_ = var_13;
  var_8[0x32]._0_4_ = uVar4;
  var_8[0x32]._4_4_ = uVar5;
  var_8[0x33]._0_4_ = PVar7;
  var_8[0x33]._4_4_ = var_21;
  (**(type_10 **)(var_8[0x2e]._0_4_ + -0x7718))
            (*(int *)(var_8[0x2e]._0_4_ + -0x7f78) + 0x2dc0);
  MVar3 = var_8[0x34]._0_4_;
  (**(type_10 **)(var_8[0x2e]._0_4_ + -0x79bc))(uVar5);
  (**(type_10 **)(var_8[0x2e]._0_4_ + -0x79bc))(uVar4);
  if (var_8[0x34]._4_4_ == *piVar25) {
    return MVar3;
  }
  var_20 = *(type_10 **)(var_8[0x2e]._0_4_ + -0x784c);
  pcVar27 = GetFuzzDistortion;
  var_18 = var_8[0x34]._4_4_;
  (*var_20)();
  var_8[0x1c]._0_4_ = var_20 + 0x3404ac;
  piVar24 = *(int **)(var_20 + 0x338e2c);
  var_2 = *(type_7 *)(var_18 + 0x1c);
  if (*(type_7 *)(var_18 + 0x1c) <= *(type_7 *)((int)var_12 + 0x1c)) {
    var_2 = *(type_7 *)((int)var_12 + 0x1c);
  }
  uVar8 = *(type_7 *)(var_18 + 0x18);
  if (*(type_7 *)(var_18 + 0x18) <= *(type_7 *)(var_12 + 3)) {
    uVar8 = *(type_7 *)(var_12 + 3);
  }
  var_8[0x25]._4_4_ = (type_2 *)*piVar24;
  var_8[0x26]._0_4_ = MVar3;
  var_8[0x26]._4_4_ = var_17;
  var_8[0x27]._0_4_ = var_21;
  var_8[0x27]._4_4_ = var_13;
  var_8[0x28]._0_4_ = PVar7;
  var_8[0x28]._4_4_ = piVar25;
  var_8[0x29]._0_4_ = uVar4;
  var_8[0x29]._4_4_ = uVar5;
  var_8[0x2a]._0_4_ = var_1;
  var_8[0x2a]._4_4_ = pcVar27;
  uVar4 = (**(type_10 **)(var_20 + 0x339350))();
  uVar5 = (**(type_10 **)(var_8[0x1c]._0_4_ + -0x715c))(var_12,uVar21);
  var_1 = (**(type_10 **)(var_8[0x1c]._0_4_ + -0x73fc))(var_18);
  if (var_1 == 4) {
LAB_000706cc:
    var_1 = (**(type_10 **)(var_8[0x1c]._0_4_ + -0x73fc))(var_18);
    if (var_1 != 4) {
      var_1 = (**(type_10 **)(var_8[0x1c]._0_4_ + -0x73fc))(var_18);
      if (var_1 != 3) goto LAB_000704e4;
    }
    (**(type_10 **)(var_8[0x1c]._0_4_ + -0x7774))(7);
    uVar19 = var_2;
    if ((int)var_2 < 0) {
      uVar19 = var_2 + 0x3f;
    }
    var_1 = (int)uVar19 >> 6;
    if (var_25 < var_1) {
      var_8[0x1d] = (double)var_4(var_1,var_8[0x1d]._4_4_);
      (**(type_10 **)(var_8[0x1c]._0_4_ + -0x7774))(7);
      var_6 = var_26 < 2;
      var_1 = var_8[0x1d]._0_4_;
    }
    else {
      var_6 = (int)var_2 < 0x80;
    }
    if ((bool)(var_6 ^ 1)) {
      var_8[0x1d] = (double)var_4(var_1,var_8[0x1d]._4_4_);
      (**(type_10 **)(var_8[0x1c]._0_4_ + -0x7774))(7);
      var_1 = var_8[0x1d]._0_4_;
      if (var_27 < var_8[0x1d]._0_4_) {
        var_20 = *(type_10 **)(var_8[0x1c]._0_4_ + -0x7774);
        goto LAB_000707b4;
      }
    }
    else {
      var_1 = 1;
    }
  }
  else {
    var_1 = (**(type_10 **)(var_8[0x1c]._0_4_ + -0x73fc))(var_18);
    if (var_1 == 3) goto LAB_000706cc;
LAB_000704e4:
    uVar30 = (**(type_10 **)(var_8[0x1c]._0_4_ + -0x7774))(7);
    if ((int)((type_12)uVar30 >> 0x20) == 0) {
      var_20 = *(type_10 **)(var_8[0x1c]._0_4_ + -0x7774);
      if ((type_7)uVar30 < 2) {
        uVar30 = (*var_20)(7);
        if ((int)((type_12)uVar30 >> 0x20) != 0) goto LAB_000704f8;
        var_20 = *(type_10 **)(var_8[0x1c]._0_4_ + -0x7774);
        if ((type_7)uVar30 < 2) {
          var_1 = 1;
          goto LAB_00070510;
        }
      }
    }
    else {
LAB_000704f8:
      var_20 = *(type_10 **)(var_8[0x1c]._0_4_ + -0x7774);
    }
    uVar30 = (*var_20)(7);
    if (((int)((type_12)uVar30 >> 0x20) == 0) &&
       (var_20 = *(type_10 **)(var_8[0x1c]._0_4_ + -0x7774), (type_7)uVar30 < 2)) {
LAB_000707b4:
      (*var_20)(7);
      var_1 = extraout_v1_08;
    }
    else {
      var_1 = 2;
    }
  }
LAB_00070510:
  exception_00 = (type_3 *)0x0;
  var_29 = (type_2 *)(var_8 + 0x1f);
  var_8[0x24]._4_4_ = MagickTrue;
  var_8[0x1f]._4_4_ = 0;
  var_8[0x1f]._0_4_ = 0;
  var_8[0x23]._0_4_ = 0;
  var_8[0x20]._0_4_ = var_18;
  var_8[0x20]._4_4_ = var_12;
  var_8[0x21]._0_4_ = var_10;
  var_8[0x21]._4_4_ = uVar21;
  var_8[0x22]._0_4_ = uVar4;
  var_8[0x22]._4_4_ = uVar5;
  var_8[0x23]._4_4_ = uVar8;
  var_8[0x24]._0_4_ = var_2;
  (**(type_10 **)(var_8[0x1c]._0_4_ + -0x7718))
            (*(int *)(var_8[0x1c]._0_4_ + -0x7f78) + 0x2020,var_29,var_1)
  ;
  MVar3 = var_8[0x24]._4_4_;
  var_8[0x1d] =
       (double)var_4(var_8[0x1f]._0_4_,var_8[0x1f]._4_4_);
  (**(type_10 **)(var_8[0x1c]._0_4_ + -0x79bc))(uVar5);
  (**(type_10 **)(var_8[0x1c]._0_4_ + -0x79bc))(uVar4);
  if (0.0 <= var_8[0x1d]) {
    var_9 = *(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x1438);
    var_8[0x1e] = var_8[0x1d];
  }
  else {
    var_9 = *(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x1a78);
    var_8[0x1e] = -var_8[0x1d];
  }
  if (*(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x13f8) <=
      var_8[0x1e]) {
    var_9 = *(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x1438) /
             var_8[0x1d];
  }
  else {
    var_9 = var_9 / *(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x13f8);
  }
  var_12 = var_10;
  do {
    var_28 = var_12 + 1;
    *var_12 = *var_12 * var_9;
    var_12 = var_28;
  } while (var_10 + 0x41 != var_28);
  var_12 = (double *)0x0;
  if (0 < *(int *)(var_18 + 0x2c0)) {
    exception_00 = *(type_3 **)(var_18 + 0x2d0);
    var_29 = (type_2 *)(&exception_00->severity + *(int *)(var_18 + 0x2c0) * 3);
    pEVar12 = exception_00;
    do {
      if (((&exception_00->error_number)[pEVar12->severity * 3] & 2U) != 0) {
        var_12 = (double *)((int)var_12 + 1);
      }
      pEVar12 = (type_3 *)&pEVar12->description;
    } while ((type_2 *)pEVar12 != var_29);
    if (var_12 != (double *)0x0) {
      var_9 = (double)(int)var_12;
      if ((int)var_12 < 0) {
        var_9 = var_9 + *(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x1418);
      }
      goto LAB_00070664;
    }
  }
  var_9 = *(double *)(*(int *)(var_8[0x1c]._0_4_ + -0x7fd0) + 0x1438);
LAB_00070664:
  var_9 = var_10[0x40] / var_9;
  var_10[0x40] = var_9;
  dVar29 = var_30(var_9);
  if (var_9 < 0.0) {
    (**(type_10 **)(var_8[0x1c]._0_4_ + -0x7430))();
  }
  var_31 = (type_2 *)*piVar24;
  var_10[0x40] = dVar29;
  if (var_8[0x25]._4_4_ == var_31) {
    return MVar3;
  }
  var_20 = *(type_10 **)(var_8[0x1c]._0_4_ + -0x784c);
  pcVar27 = GetRootMeanSquaredDistortion;
  var_31 = var_8[0x25]._4_4_;
  (*var_20)();
  var_8[0x14]._0_4_ = var_20 + 0x340084;
  var_9 = 0.0;
  var_8[0x16]._4_4_ = var_18;
  var_8[0x17]._0_4_ = var_10;
  var_8[0x17]._4_4_ = pcVar27;
  var_8[0x18] = dVar29;
  var_8[0x15]._4_4_ =
       function_1(var_31,var_29,var_12,exception_00);
  var_10 = var_12;
  var_20 = var_8[0x14]._0_4_;
  do {
    dVar29 = var_30(*var_10);
    if (*var_10 < var_9) {
      (**(type_10 **)(var_20 + -0x7430))();
      var_20 = var_8[0x14]._0_4_;
    }
    var_28 = var_10 + 1;
    *var_10 = dVar29;
    var_10 = var_28;
  } while (var_28 != var_12 + 0x41);
  return var_8[0x15]._4_4_;
}


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

undefined4 MASKED(int param_1,int param_2,double *param_3,undefined4 param_4)

{
  bool bVar1;
  undefined *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  double *pdVar11;
  int iVar12;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int extraout_v1_03;
  double *extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int *piVar13;
  int extraout_v1_07;
  int extraout_v1_08;
  int extraout_v1_09;
  int extraout_v1_10;
  int *piVar14;
  uint uVar15;
  double *pdVar16;
  double *pdVar17;
  uint uVar18;
  int *piVar19;
  undefined4 uVar20;
  int *piVar21;
  int *piVar22;
  undefined *puVar23;
  code *pcVar24;
  code *pcVar25;
  double dVar26;
  double dVar27;
  undefined8 uVar28;
  double dStack_168;
  undefined4 uStack_160;
  undefined4 uStack_15c;
  int iStack_158;
  int *piStack_154;
  double *pdStack_150;
  undefined4 uStack_14c;
  undefined4 uStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  uint uStack_13c;
  uint uStack_138;
  undefined4 uStack_134;
  int iStack_12c;
  undefined4 uStack_128;
  int *piStack_124;
  uint uStack_120;
  int *piStack_11c;
  uint uStack_118;
  int *piStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  int iStack_108;
  code *pcStack_104;
  undefined *puStack_e8;
  double *pdStack_dc;
  int iStack_d8;
  int *piStack_d4;
  int iStack_d0;
  int *piStack_cc;
  undefined4 uStack_c8;
  undefined4 uStack_c4;
  uint uStack_c0;
  uint uStack_bc;
  undefined4 uStack_b8;
  int iStack_b4;
  int iStack_b0;
  double *pdStack_ac;
  undefined *puStack_a8;
  undefined4 uStack_a4;
  uint uStack_a0;
  undefined4 uStack_9c;
  uint uStack_98;
  undefined4 uStack_94;
  undefined4 uStack_90;
  code *pcStack_8c;
  double local_68;
  int local_60;
  undefined4 uStack_5c;
  int local_58;
  int local_54;
  double *local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  uint local_3c;
  uint local_38;
  undefined4 local_34;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  uVar15 = *(uint *)(param_1 + 0x1c);
  if (*(uint *)(param_1 + 0x1c) <= *(uint *)(param_2 + 0x1c)) {
    uVar15 = *(uint *)(param_2 + 0x1c);
  }
  uVar10 = *(uint *)(param_1 + 0x18);
  if (*(uint *)(param_1 + 0x18) <= *(uint *)(param_2 + 0x18)) {
    uVar10 = *(uint *)(param_2 + 0x18);
  }
  local_2c = *(int *)PTR___stack_chk_guard_003a9230;
  uVar5 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_1,param_4);
  uVar6 = (*(code *)PTR_AcquireVirtualCacheView_003a9754)(param_2,param_4);
  iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1);
  if (((iVar7 == 4) || (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)
      ) && ((iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 4 ||
            (iVar7 = (*(code *)PTR_GetImagePixelCacheType_003a94b4)(param_1), iVar7 == 3)))) {
    (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
    uVar18 = uVar15;
    if ((int)uVar15 < 0) {
      uVar18 = uVar15 + 0x3f;
    }
    iVar7 = (int)uVar18 >> 6;
    if (extraout_v1 < iVar7) {
      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      bVar1 = extraout_v1_02 < 2;
    }
    else {
      bVar1 = (int)uVar15 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      if (extraout_v1_01 < iVar7) goto LAB_000700d8;
    }
    else {
      iVar7 = 1;
    }
  }
  else {
    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {
      uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {
        iVar7 = 1;
        goto LAB_0006fe50;
      }
    }
    uVar28 = (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) && ((uint)uVar28 < 2)) {
LAB_000700d8:
      (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
      iVar7 = extraout_v1_00;
    }
    else {
      iVar7 = 2;
    }
  }
LAB_0006fe50:
  piVar19 = (int *)0x0;
  piVar13 = &local_60;
  local_34 = 1;
  uStack_5c = 0;
  local_60 = 0;
  local_40 = 0;
  local_58 = param_1;
  local_54 = param_2;
  local_50 = param_3;
  local_4c = param_4;
  local_48 = uVar5;
  local_44 = uVar6;
  local_3c = uVar10;
  local_38 = uVar15;
  (*(code *)PTR_GOMP_parallel_003a9198)(PTR_LAB_003a8938 + 0x2948,piVar13,iVar7);
  uVar20 = local_34;
  uVar3 = uStack_5c;
  iVar7 = local_60;
  dVar26 = (double)CONCAT44(local_60,uStack_5c);
  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar6);
  (*(code *)PTR_DestroyCacheView_003a8ef4)(uVar5);
  if (0.0 <= dVar26) {
    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
    local_68 = dVar26;
  }
  else {
    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);
    local_68 = -(double)CONCAT44(iVar7,uVar3);
  }
  if (*(double *)(PTR_LAB_003a88e0 + 0x13f8) <= local_68) {
    dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438) / dVar26;
  }
  else {
    dVar27 = dVar27 / *(double *)(PTR_LAB_003a88e0 + 0x13f8);
  }
  pdVar16 = param_3;
  do {
    pdVar17 = pdVar16 + 1;
    *pdVar16 = *pdVar16 * dVar27;
    pdVar16 = pdVar17;
  } while (param_3 + 0x41 != pdVar17);
  iVar7 = 0;
  if (*(int *)(param_1 + 0x2c0) < 1) {
LAB_0007006c:
    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
  }
  else {
    piVar19 = *(int **)(param_1 + 0x2d0);
    piVar13 = piVar19 + *(int *)(param_1 + 0x2c0) * 3;
    piVar22 = piVar19;
    do {
      if ((piVar19[*piVar22 * 3 + 1] & 2U) != 0) {
        iVar7 = iVar7 + 1;
      }
      piVar22 = piVar22 + 3;
    } while (piVar22 != piVar13);
    if (iVar7 == 0) goto LAB_0007006c;
    dVar26 = (double)iVar7;
    if (iVar7 < 0) {
      dVar26 = dVar26 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
    }
  }
  iVar12 = *(int *)puVar2;
  param_3[0x40] = param_3[0x40] / dVar26;
  if (local_2c == iVar12) {
    return uVar20;
  }
  pcVar24 = FUN_0007013c;
  iVar12 = local_2c;
  puVar23 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  puStack_e8 = puVar23 + 0x340774;
  uStack_a4 = uVar20;
  puStack_a8 = puVar2;
  piVar22 = *(int **)(puVar23 + 0x3390f4);
  uVar18 = *(uint *)(iVar12 + 0x1c);
  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar13[7]) {
    uVar18 = piVar13[7];
  }
  uVar8 = *(uint *)(iVar12 + 0x18);
  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar13[6]) {
    uVar8 = piVar13[6];
  }
  iStack_b4 = *piVar22;
  iStack_b0 = param_1;
  pdStack_ac = param_3;
  uStack_a0 = uVar15;
  uStack_9c = param_4;
  uStack_98 = uVar10;
  uStack_94 = uVar5;
  uStack_90 = uVar6;
  pcStack_8c = pcVar24;
  uVar5 = (**(code **)(puVar23 + 0x339618))();
  uVar6 = (**(code **)(puStack_e8 + -0x715c))(piVar13,piVar19);
  iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12);
  if (((iVar9 == 4) || (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)) &&
     ((iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 4 ||
      (iVar9 = (**(code **)(puStack_e8 + -0x73fc))(iVar12), iVar9 == 3)))) {
    (**(code **)(puStack_e8 + -0x7774))(7);
    uVar15 = uVar18;
    if ((int)uVar18 < 0) {
      uVar15 = uVar18 + 0x3f;
    }
    pdVar16 = (double *)((int)uVar15 >> 6);
    if (extraout_v1_03 < (int)pdVar16) {
      pdStack_dc = pdVar16;
      (**(code **)(puStack_e8 + -0x7774))(7);
      bVar1 = extraout_v1_06 < 2;
      pdVar16 = pdStack_dc;
    }
    else {
      bVar1 = (int)uVar18 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      pdStack_dc = pdVar16;
      (**(code **)(puStack_e8 + -0x7774))(7);
      pdVar16 = pdStack_dc;
      if (extraout_v1_05 < (int)pdStack_dc) {
        pcVar24 = *(code **)(puStack_e8 + -0x7774);
        goto LAB_000703a0;
      }
    }
    else {
      pdVar16 = (double *)0x1;
    }
  }
  else {
    uVar28 = (**(code **)(puStack_e8 + -0x7774))(7);
    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {
      pcVar24 = *(code **)(puStack_e8 + -0x7774);
      if ((uint)uVar28 < 2) {
        uVar28 = (*pcVar24)(7);
        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_00070230;
        pcVar24 = *(code **)(puStack_e8 + -0x7774);
        if ((uint)uVar28 < 2) {
          pdVar16 = (double *)0x1;
          goto LAB_00070248;
        }
      }
    }
    else {
LAB_00070230:
      pcVar24 = *(code **)(puStack_e8 + -0x7774);
    }
    uVar28 = (*pcVar24)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&
       (pcVar24 = *(code **)(puStack_e8 + -0x7774), (uint)uVar28 < 2)) {
LAB_000703a0:
      (*pcVar24)(7);
      pdVar16 = extraout_v1_04;
    }
    else {
      pdVar16 = (double *)0x2;
    }
  }
LAB_00070248:
  uVar20 = 0;
  piVar14 = &iStack_d8;
  uStack_b8 = 1;
  iStack_d8 = iVar12;
  piStack_d4 = piVar13;
  iStack_d0 = iVar7;
  piStack_cc = piVar19;
  uStack_c8 = uVar5;
  uStack_c4 = uVar6;
  uStack_c0 = uVar8;
  uStack_bc = uVar18;
  (**(code **)(puStack_e8 + -0x7718))(*(int *)(puStack_e8 + -0x7f78) + 0x2dc0);
  uVar3 = uStack_b8;
  (**(code **)(puStack_e8 + -0x79bc))(uVar6);
  (**(code **)(puStack_e8 + -0x79bc))(uVar5);
  if (iStack_b4 == *piVar22) {
    return uVar3;
  }
  pcVar24 = *(code **)(puStack_e8 + -0x784c);
  pcVar25 = FUN_00070404;
  iVar12 = iStack_b4;
  (*pcVar24)();
  piVar21 = *(int **)(pcVar24 + 0x338e2c);
  uVar15 = *(uint *)(iVar12 + 0x1c);
  if (*(uint *)(iVar12 + 0x1c) <= (uint)piVar14[7]) {
    uVar15 = piVar14[7];
  }
  uVar10 = *(uint *)(iVar12 + 0x18);
  if (*(uint *)(iVar12 + 0x18) <= (uint)piVar14[6]) {
    uVar10 = piVar14[6];
  }
  iStack_12c = *piVar21;
  uStack_128 = uVar3;
  piStack_124 = piVar13;
  uStack_120 = uVar18;
  piStack_11c = piVar19;
  uStack_118 = uVar8;
  piStack_114 = piVar22;
  uStack_110 = uVar5;
  uStack_10c = uVar6;
  iStack_108 = iVar7;
  pcStack_104 = pcVar25;
  uVar5 = (**(code **)(pcVar24 + 0x339350))();
  uVar6 = (**(code **)(pcVar24 + 0x339350))(piVar14,uVar20);
  iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12);
  if (((iVar7 == 4) || (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)) &&
     ((iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 4 ||
      (iVar7 = (**(code **)(pcVar24 + 0x3390b0))(iVar12), iVar7 == 3)))) {
    (**(code **)(pcVar24 + 0x338d38))(7);
    uVar18 = uVar15;
    if ((int)uVar15 < 0) {
      uVar18 = uVar15 + 0x3f;
    }
    iVar7 = (int)uVar18 >> 6;
    if (extraout_v1_07 < iVar7) {
      (**(code **)(pcVar24 + 0x338d38))(7);
      bVar1 = extraout_v1_10 < 2;
    }
    else {
      bVar1 = (int)uVar15 < 0x80;
    }
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar24 + 0x338d38))(7);
      if (extraout_v1_09 < iVar7) {
        pcVar25 = *(code **)(pcVar24 + 0x338d38);
        goto LAB_000707b4;
      }
    }
    else {
      iVar7 = 1;
    }
  }
  else {
    uVar28 = (**(code **)(pcVar24 + 0x338d38))(7);
    if ((int)((ulonglong)uVar28 >> 0x20) == 0) {
      pcVar25 = *(code **)(pcVar24 + 0x338d38);
      if ((uint)uVar28 < 2) {
        uVar28 = (*pcVar25)(7);
        if ((int)((ulonglong)uVar28 >> 0x20) != 0) goto LAB_000704f8;
        pcVar25 = *(code **)(pcVar24 + 0x338d38);
        if ((uint)uVar28 < 2) {
          iVar7 = 1;
          goto LAB_00070510;
        }
      }
    }
    else {
LAB_000704f8:
      pcVar25 = *(code **)(pcVar24 + 0x338d38);
    }
    uVar28 = (*pcVar25)(7);
    if (((int)((ulonglong)uVar28 >> 0x20) == 0) &&
       (pcVar25 = *(code **)(pcVar24 + 0x338d38), (uint)uVar28 < 2)) {
LAB_000707b4:
      (*pcVar25)(7);
      iVar7 = extraout_v1_08;
    }
    else {
      iVar7 = 2;
    }
  }
LAB_00070510:
  uStack_134 = 1;
  uStack_15c = 0;
  uStack_160 = 0;
  uStack_140 = 0;
  iStack_158 = iVar12;
  piStack_154 = piVar14;
  pdStack_150 = pdVar16;
  uStack_14c = uVar20;
  uStack_148 = uVar5;
  uStack_144 = uVar6;
  uStack_13c = uVar10;
  uStack_138 = uVar15;
  (**(code **)(pcVar24 + 0x338d94))(*(int *)(pcVar24 + 0x338534) + 0x2020,&uStack_160,iVar7,0);
  uVar4 = uStack_134;
  uVar20 = uStack_15c;
  uVar3 = uStack_160;
  dVar26 = (double)CONCAT44(uStack_160,uStack_15c);
  (**(code **)(pcVar24 + 0x338af0))(uVar6);
  (**(code **)(pcVar24 + 0x338af0))(uVar5);
  if (0.0 <= dVar26) {
    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);
    dStack_168 = dVar26;
  }
  else {
    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1a78);
    dStack_168 = -(double)CONCAT44(uVar3,uVar20);
  }
  if (*(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8) <= dStack_168) {
    dVar27 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438) / dVar26;
  }
  else {
    dVar27 = dVar27 / *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x13f8);
  }
  pdVar17 = pdVar16;
  do {
    pdVar11 = pdVar17 + 1;
    *pdVar17 = *pdVar17 * dVar27;
    pdVar17 = pdVar11;
  } while (pdVar16 + 0x41 != pdVar11);
  pdVar17 = (double *)0x0;
  if (0 < *(int *)(iVar12 + 0x2c0)) {
    piVar19 = *(int **)(iVar12 + 0x2d0);
    piVar13 = piVar19;
    do {
      if ((piVar19[*piVar13 * 3 + 1] & 2U) != 0) {
        pdVar17 = (double *)((int)pdVar17 + 1);
      }
      piVar13 = piVar13 + 3;
    } while (piVar13 != piVar19 + *(int *)(iVar12 + 0x2c0) * 3);
    if (pdVar17 != (double *)0x0) {
      dVar26 = (double)(int)pdVar17;
      if ((int)pdVar17 < 0) {
        dVar26 = dVar26 + *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1418);
      }
      goto LAB_00070664;
    }
  }
  dVar26 = *(double *)(*(int *)(pcVar24 + 0x3384dc) + 0x1438);
LAB_00070664:
  dVar26 = pdVar16[0x40] / dVar26;
  pdVar16[0x40] = dVar26;
  dVar27 = SQRT(dVar26);
  if (dVar26 < 0.0) {
    (**(code **)(pcVar24 + 0x33907c))();
  }
  iVar7 = *piVar21;
  pdVar16[0x40] = dVar27;
  if (iStack_12c != iVar7) {
    pcVar24 = *(code **)(pcVar24 + 0x338c60);
    (*pcVar24)();
    dVar26 = 0.0;
    uVar5 = MASKED();
    pdVar16 = pdVar17;
    do {
      dVar27 = SQRT(*pdVar16);
      if (*pdVar16 < dVar26) {
        (**(code **)(pcVar24 + 0x338c54))();
      }
      pdVar11 = pdVar16 + 1;
      *pdVar16 = dVar27;
      pdVar16 = pdVar11;
    } while (pdVar11 != pdVar17 + 0x41);
    return uVar5;
  }
  return uVar4;
}

