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

{
  bool bVar1;
  MagickSizeType MVar2;
  undefined *puVar3;
  undefined *puVar4;
  CubeInfo_conflict *pCVar5;
  int iVar6;
  DoublePixelPacket *pDVar7;
  undefined4 uVar8;
  double *pdVar9;
  uint uVar10;
  int iVar11;
  PixelInfo *pPVar12;
  uint uVar13;
  uint uVar14;
  NodeInfo_conflict *pNVar15;
  NodeInfo_conflict *pNVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  CubeInfo_conflict *pCVar20;
  CubeInfo_conflict *pCVar21;
  MagickBooleanType MVar22;
  int extraout_v1;
  uint uVar23;
  uint uVar24;
  CubeInfo_conflict *pCVar25;
  PixelChannelMap *pPVar26;
  uint uVar27;
  ssize_t sVar28;
  size_t sVar29;
  int iVar30;
  int iVar31;
  DoublePixelPacket **ppDVar32;
  undefined4 *puVar33;
  int iVar34;
  int iVar35;
  size_t sVar36;
  uint uVar37;
  undefined *puVar38;
  code *pcVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  float fVar45;
  float fVar46;
  double dVar44;
  double dVar47;
  float fVar49;
  double dVar48;
  double dVar50;
  float fVar52;
  float fVar53;
  double dVar51;
  double dVar54;
  float fVar55;
  double dVar56;
  float fVar57;
  double dVar58;
  DoublePixelPacket **local_390;
  char *q;
  CubeInfo_conflict cube;
  
  iVar6 = *(int *)PTR___stack_chk_guard_003fa248;
  sVar36 = image->columns;
  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);
  local_390 = (DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);
  if (local_390 == (DoublePixelPacket **)0x0) {
    MVar22 = MagickFalse;
  }
  else {
    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);
    if (0 < extraout_v1) {
      iVar34 = 0;
      ppDVar32 = local_390;
      do {
        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);
        *ppDVar32 = pDVar7;
        if (pDVar7 == (DoublePixelPacket *)0x0) {
          local_390 = DestroyPixelThreadSet(local_390);
          if (local_390 == (DoublePixelPacket **)0x0) {
            MVar22 = MagickFalse;
            goto LAB_0016dc30;
          }
          break;
        }
        iVar34 = iVar34 + 1;
        ppDVar32 = ppDVar32 + 1;
      } while (extraout_v1 != iVar34);
    }
    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)
                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);
    if (iVar34 == 0) {
      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
    }
    else {
      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);
      if (*q == '%') {
        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);
      }
    }
    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);
    puVar4 = PTR_UINT_003f98e4;
    puVar38 = PTR_LAB_003f98e0;
    uVar37 = 0;
    if (0 < (int)image->rows) {
      bVar1 = true;
      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);
      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);
      do {
        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();
        if ((bVar1) &&
           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                               (uVar8,0,uVar37,image->columns,1,exception),
           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {
          pCVar21 = cube_info;
          pCVar5 = &cube;
          do {
            pCVar25 = pCVar5;
            pCVar20 = pCVar21;
            sVar29 = pCVar20->colors;
            sVar36 = pCVar20->maximum_colors;
            sVar28 = pCVar20->transparent_index;
            pCVar25->root = pCVar20->root;
            pCVar25->colors = sVar29;
            pCVar25->maximum_colors = sVar36;
            pCVar25->transparent_index = sVar28;
            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;
            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;
          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);
          MVar2 = pCVar20->transparent_pixels;
          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;
          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;
          pDVar7 = local_390[iVar34];
          sVar36 = image->columns;
          uVar27 = uVar37 & 1;
          iVar30 = uVar27 * sVar36 * 0x20;
          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;
          iVar34 = 1;
          if (uVar27 != 0) {
            iVar34 = -1;
          }
          if (0 < (int)sVar36) {
            iVar35 = 0;
            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
            do {
              iVar17 = iVar35;
              if (uVar27 != 0) {
                iVar17 = (sVar36 - 1) - iVar35;
              }
              iVar18 = image->number_channels * 4 * iVar17 + iVar19;
              if (cube.associate_alpha == MagickFalse) {
                pPVar26 = image->channel_map;
LAB_0016cdf8:
                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);
                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);
                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);
                if (pPVar26[4].traits == UndefinedPixelTrait) {
                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
                else {
                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);
                }
              }
              else {
                pPVar26 = image->channel_map;
                if ((pPVar26[4].traits == UndefinedPixelTrait) ||
                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),
                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;
                dVar43 = (double)fVar46 * dVar44;
                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;
                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;
                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;
                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);
              }
              dVar58 = (double)fVar46;
              if (0 < iVar35) {
                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);
                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);
                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;
                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;
                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;
                if (cube.associate_alpha != MagickFalse) {
                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;
                }
              }
              if (0 < (int)uVar37) {
                if (iVar35 < (int)(image->columns - 1)) {
                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);
                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                  dVar50 = *pdVar9 * dVar54 + dVar50;
                  dVar47 = pdVar9[1] * dVar54 + dVar47;
                  dVar43 = pdVar9[2] * dVar54 + dVar43;
                  if (cube.associate_alpha != MagickFalse) {
                    dVar58 = pdVar9[3] *
                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +
                             dVar58;
                  }
                }
                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);
                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);
                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;
                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;
                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;
                if (cube.associate_alpha != MagickFalse) {
                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;
                }
                if (0 < iVar35) {
                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);
                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);
                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;
                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;
                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;
                  if (cube.associate_alpha != MagickFalse) {
                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;
                  }
                }
              }
              if (0.0 <= dVar50) {
                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {
                  fVar46 = (float)dVar50;
                }
                else {
                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar46 = 0.0;
              }
              dVar50 = (double)fVar46;
              if (0.0 <= dVar47) {
                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {
                  fVar49 = (float)dVar47;
                }
                else {
                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar49 = 0.0;
              }
              dVar47 = (double)fVar49;
              if (0.0 <= dVar43) {
                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {
                  fVar45 = (float)dVar43;
                }
                else {
                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar45 = 0.0;
              }
              dVar43 = (double)fVar45;
              if (cube.associate_alpha != MagickFalse) {
                if (0.0 <= dVar58) {
                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {
                    fVar52 = (float)dVar58;
                  }
                  else {
                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                  }
                }
                else {
                  fVar52 = 0.0;
                }
                dVar58 = (double)fVar52;
              }
              if (0.0 <= fVar46) {
                uVar23 = 0xff;
                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar46)) {
                    uVar23 = 0;
                  }
                  else if (0.0 < fVar46) {
                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {
                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar23 = (int)dVar54 & 0xff;
                    }
                    else {
                      uVar23 = 0xff;
                    }
                  }
                  else {
                    uVar23 = 0;
                  }
                }
              }
              else {
                uVar23 = 0;
              }
              if (0.0 <= fVar49) {
                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar49)) {
                    uVar10 = 0;
                  }
                  else if (0.0 < fVar49) {
                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {
                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar10 = (int)dVar54 & 0xff;
                    }
                    else {
                      uVar10 = 0xff;
                    }
                  }
                  else {
                    uVar10 = 0;
                  }
                }
                else {
                  uVar10 = 0xff;
                }
              }
              else {
                uVar10 = 0;
              }
              if (0.0 <= fVar45) {
                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar45)) {
                    uVar24 = 0;
                  }
                  else if (0.0 < fVar45) {
                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {
                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar24 = (int)dVar54 & 0xff;
                    }
                    else {
                      uVar24 = 0xff;
                    }
                  }
                  else {
                    uVar24 = 0;
                  }
                }
                else {
                  uVar24 = 0xff;
                }
              }
              else {
                uVar24 = 0;
              }
              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;
              if (cube.associate_alpha != MagickFalse) {
                if (0.0 <= dVar58) {
                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {
                    fVar52 = (float)dVar58;
                    if (NAN(fVar52)) {
                      uVar10 = 0;
                    }
                    else if (0.0 < fVar52) {
                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <
                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +
                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {
                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar10 = (int)dVar54 & 0xff;
                      }
                      else {
                        uVar10 = 0xff;
                      }
                    }
                    else {
                      uVar10 = 0;
                    }
                  }
                  else {
                    uVar10 = 0xff;
                  }
                }
                else {
                  uVar10 = 0;
                }
                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;
              }
              if (cube.cache[uVar23] < 0) {
                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                fVar52 = fVar46;
                if (fVar53 <= fVar46) {
                  fVar52 = fVar53;
                }
                fVar57 = fVar49;
                if (fVar53 <= fVar49) {
                  fVar57 = fVar53;
                }
                if (fVar45 < fVar53) {
                  fVar53 = fVar45;
                }
                uVar10 = 7;
                dVar54 = *(double *)(puVar4 + -0x2a80);
                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);
                pNVar16 = cube.root;
                do {
                  uVar24 = 0;
                  if ((0.0 <= fVar46) &&
                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {
                    if ((double)fVar52 / dVar54 < dVar56) {
                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {
                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar24 = (int)dVar48 & 0xff;
                    }
                    else {
                      uVar24 = 0xff;
                    }
                  }
                  if (0.0 <= fVar49) {
                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                      if (NAN(fVar49)) {
                        uVar13 = 0;
                      }
                      else {
                        uVar13 = 0;
                        if (0.0 < fVar49) goto LAB_0016d63c;
                      }
                    }
                    else {
LAB_0016d63c:
                      uVar13 = 0xff;
                      if ((double)fVar57 / dVar54 < dVar56) {
                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {
                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar13 = (int)dVar48 & 0xff;
                      }
                    }
                  }
                  else {
                    uVar13 = 0;
                  }
                  if (0.0 <= fVar45) {
                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                      if (NAN(fVar45)) {
                        uVar14 = 0;
                      }
                      else {
                        if (0.0 < fVar45) goto LAB_0016d6f4;
                        uVar14 = 0;
                      }
                    }
                    else {
LAB_0016d6f4:
                      if ((double)fVar53 / dVar54 < dVar56) {
                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {
                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar14 = (int)dVar48 & 0xff;
                      }
                      else {
                        uVar14 = 0xff;
                      }
                    }
                  }
                  else {
                    uVar14 = 0;
                  }
                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |
                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |
                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;
                  if (cube.associate_alpha != MagickFalse) {
                    if (0.0 <= dVar58) {
                      if (dVar58 < dVar41) {
                        fVar55 = (float)dVar58;
                        if (NAN(fVar55)) {
                          uVar13 = 0;
                        }
                        else if (0.0 < fVar55) {
                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                            dVar48 = (double)fVar55 / dVar42 +
                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {
                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                            }
                            uVar13 = (int)dVar48 & 0xff;
                          }
                          else {
                            uVar13 = 0xff;
                          }
                        }
                        else {
                          uVar13 = 0;
                        }
                      }
                      else {
                        uVar13 = 0xff;
                      }
                    }
                    else {
                      uVar13 = 0;
                    }
                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;
                  }
                  pNVar15 = pNVar16->child[uVar24];
                  uVar10 = uVar10 - 1;
                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));
                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);
                cube.target.red = dVar50;
                cube.target.green = dVar47;
                cube.target.blue = dVar43;
                cube.target.alpha = dVar58;
                ClosestColor(image,&cube,pNVar16->parent);
                cube.cache[uVar23] = cube.color_number;
              }
              iVar18 = cube.cache[uVar23];
              if ((image->storage_class == PseudoClass) &&
                 (image->channel_map[5].traits != UndefinedPixelTrait)) {
                dVar54 = (double)iVar18;
                if (iVar18 < 0) {
                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
                }
                *(float *)(image->number_channels * 4 * iVar17 +
                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;
              }
              if ((cube.quantize_info)->measure_error == MagickFalse) {
                pPVar26 = image->channel_map;
                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =
                     (float)image->colormap[iVar18].red;
                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =
                     (float)image->colormap[iVar18].green;
                *(float *)(image->number_channels * 4 * iVar17 +
                          iVar19 + image->channel_map[2].offset * 4) =
                     (float)image->colormap[iVar18].blue;
                if ((cube.associate_alpha != MagickFalse) &&
                   (image->channel_map[4].traits != UndefinedPixelTrait)) {
                  *(float *)(image->number_channels * 4 * iVar17 +
                            iVar19 + image->channel_map[4].offset * 4) =
                       (float)image->colormap[iVar18].alpha;
                }
              }
              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);
              if (iVar11 == 0) {
                bVar1 = false;
              }
              pPVar12 = image->colormap;
              if ((cube.associate_alpha == MagickFalse) ||
                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {
                dVar51 = pPVar12[iVar18].red;
                dVar48 = pPVar12[iVar18].green;
                dVar56 = pPVar12[iVar18].blue;
                dVar54 = pPVar12[iVar18].alpha;
              }
              else {
                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);
                dVar51 = dVar56 * pPVar12[iVar18].red;
                dVar48 = dVar56 * pPVar12[iVar18].green;
                dVar56 = dVar56 * pPVar12[iVar18].blue;
              }
              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);
              *pdVar9 = dVar50 - dVar51;
              pdVar9[1] = dVar47 - dVar48;
              pdVar9[2] = dVar43 - dVar56;
              if (cube.associate_alpha != MagickFalse) {
                pdVar9[3] = dVar58 - dVar54;
              }
              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&
                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)
                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,
                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {
                bVar1 = false;
              }
              iVar35 = iVar35 + 1;
              sVar36 = image->columns;
            } while (iVar35 < (int)sVar36);
          }
        }
        else {
          bVar1 = false;
        }
        uVar37 = uVar37 + 1;
      } while ((int)uVar37 < (int)image->rows);
    }
    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);
    DestroyPixelThreadSet(local_390);
    MVar22 = MagickTrue;
  }
LAB_0016dc30:
  if (iVar6 == *(int *)PTR___stack_chk_guard_003fa248) {
    return MVar22;
  }
  puVar38 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  (**(code **)(puVar38 + 0x28c55c))
            (0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,
             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4);
  if (iVar6 == 0) {
    (**(code **)(puVar38 + 0x28c984))
              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,
               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);
  }
  else if (*(int *)(iVar6 + 0x14) == -0x54535255) {
    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;
    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);
    return MVar22;
  }
  iVar6 = *(int *)(puVar38 + 0x28bc5c) + -0x4d5c;
  pcVar39 = *(code **)(puVar38 + 0x28c984);
  (*pcVar39)(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,
             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);
  do {
    puVar33 = *(undefined4 **)(iVar6 + 0x60);
    iVar34 = puVar33[1];
    uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);
    *puVar33 = uVar8;
    (**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));
    *(int *)(iVar6 + 0x60) = iVar34;
  } while (iVar34 != 0);
  if (*(int *)(iVar6 + 100) != 0) {
    uVar8 = (**(code **)(pcVar39 + 0x28c62c))();
    *(undefined4 *)(iVar6 + 100) = uVar8;
  }
  uVar8 = (**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0));
  *(undefined4 *)(iVar6 + 0x2f0) = uVar8;
  MVar22 = (**(code **)(pcVar39 + 0x28c254))(iVar6);
  return MVar22;
}



undefined4 FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined4 **ppuVar4;
  int iVar5;
  undefined4 uVar6;
  double *pdVar7;
  uint uVar8;
  uint uVar9;
  undefined4 *puVar10;
  int iVar11;
  int extraout_v1;
  uint uVar12;
  uint uVar13;
  int iVar14;
  undefined4 **ppuVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int iVar19;
  undefined4 *puVar20;
  undefined4 *puVar21;
  undefined4 *puVar22;
  int *piVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  uint uVar27;
  undefined *puVar28;
  code *pcVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  float fVar35;
  float fVar36;
  double dVar34;
  double dVar37;
  float fVar39;
  double dVar38;
  double dVar40;
  float fVar42;
  float fVar43;
  double dVar41;
  double dVar44;
  float fVar45;
  double dVar46;
  float fVar47;
  double dVar48;
  int *local_390;
  char *local_37c;
  undefined4 *local_378 [6];
  double local_360;
  double local_358;
  double local_350;
  double local_348;
  undefined8 local_340;
  undefined4 local_320;
  int local_310;
  int local_88;
  int local_84;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_003fa248;
  iVar26 = param_1[6];
  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);
  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);
  if (local_390 == (int *)0x0) {
    uVar6 = 0;
  }
  else {
    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);
    if (0 < extraout_v1) {
      iVar24 = 0;
      piVar23 = local_390;
      do {
        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);
        *piVar23 = iVar5;
        if (iVar5 == 0) {
          local_390 = (int *)FUN_00166940(local_390);
          if (local_390 == (int *)0x0) {
            uVar6 = 0;
            goto LAB_0016dc30;
          }
          break;
        }
        iVar24 = iVar24 + 1;
        piVar23 = piVar23 + 1;
      } while (extraout_v1 != iVar24);
    }
    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)
                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);
    if (iVar26 == 0) {
      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
    }
    else {
      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);
      if (*local_37c == '%') {
        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);
      }
    }
    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);
    puVar3 = PTR_UINT_003f98e4;
    puVar28 = PTR_LAB_003f98e0;
    uVar27 = 0;
    if (0 < param_1[7]) {
      bVar1 = true;
      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);
      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);
      do {
        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();
        if ((bVar1) &&
           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,
           iVar24 != 0)) {
          puVar20 = param_2;
          ppuVar4 = local_378;
          do {
            ppuVar15 = ppuVar4;
            puVar10 = puVar20;
            puVar22 = (undefined4 *)puVar10[1];
            puVar21 = (undefined4 *)puVar10[2];
            puVar20 = (undefined4 *)puVar10[3];
            *ppuVar15 = (undefined4 *)*puVar10;
            ppuVar15[1] = puVar22;
            ppuVar15[2] = puVar21;
            ppuVar15[3] = puVar20;
            puVar20 = puVar10 + 4;
            ppuVar4 = ppuVar15 + 4;
          } while (puVar20 != param_2 + 0xc4);
          puVar10 = (undefined4 *)puVar10[5];
          ppuVar15[4] = (undefined4 *)*puVar20;
          ppuVar15[5] = puVar10;
          iVar16 = param_1[6];
          uVar18 = uVar27 & 1;
          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];
          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];
          iVar11 = 1;
          if (uVar18 != 0) {
            iVar11 = -1;
          }
          if (0 < iVar16) {
            iVar25 = 0;
            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
            do {
              iVar14 = iVar25;
              if (uVar18 != 0) {
                iVar14 = (iVar16 + -1) - iVar25;
              }
              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;
              if (local_84 == 0) {
                iVar17 = param_1[0xb4];
LAB_0016cdf8:
                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);
                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);
                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);
                if (*(int *)(iVar17 + 0x34) == 0) {
                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
                else {
                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);
                }
              }
              else {
                iVar17 = param_1[0xb4];
                if ((*(int *)(iVar17 + 0x34) == 0) ||
                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),
                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;
                dVar33 = (double)fVar36 * dVar34;
                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;
                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;
                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;
                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);
              }
              dVar48 = (double)fVar36;
              if (0 < iVar25) {
                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);
                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);
                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;
                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;
                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;
                if (local_84 != 0) {
                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;
                }
              }
              if (0 < (int)uVar27) {
                if (iVar25 < param_1[6] + -1) {
                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);
                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                  dVar40 = *pdVar7 * dVar44 + dVar40;
                  dVar37 = pdVar7[1] * dVar44 + dVar37;
                  dVar33 = pdVar7[2] * dVar44 + dVar33;
                  if (local_84 != 0) {
                    dVar48 = pdVar7[3] *
                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +
                             dVar48;
                  }
                }
                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);
                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);
                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;
                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;
                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;
                if (local_84 != 0) {
                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;
                }
                if (0 < iVar25) {
                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);
                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);
                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;
                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;
                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;
                  if (local_84 != 0) {
                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;
                  }
                }
              }
              if (0.0 <= dVar40) {
                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {
                  fVar36 = (float)dVar40;
                }
                else {
                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar36 = 0.0;
              }
              dVar40 = (double)fVar36;
              if (0.0 <= dVar37) {
                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {
                  fVar39 = (float)dVar37;
                }
                else {
                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar39 = 0.0;
              }
              dVar37 = (double)fVar39;
              if (0.0 <= dVar33) {
                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {
                  fVar35 = (float)dVar33;
                }
                else {
                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar35 = 0.0;
              }
              dVar33 = (double)fVar35;
              if (local_84 != 0) {
                if (0.0 <= dVar48) {
                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {
                    fVar42 = (float)dVar48;
                  }
                  else {
                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                  }
                }
                else {
                  fVar42 = 0.0;
                }
                dVar48 = (double)fVar42;
              }
              if (0.0 <= fVar36) {
                uVar12 = 0xff;
                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar36)) {
                    uVar12 = 0;
                  }
                  else if (0.0 < fVar36) {
                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar12 = (int)dVar44 & 0xff;
                    }
                    else {
                      uVar12 = 0xff;
                    }
                  }
                  else {
                    uVar12 = 0;
                  }
                }
              }
              else {
                uVar12 = 0;
              }
              if (0.0 <= fVar39) {
                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar39)) {
                    uVar8 = 0;
                  }
                  else if (0.0 < fVar39) {
                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar8 = (int)dVar44 & 0xff;
                    }
                    else {
                      uVar8 = 0xff;
                    }
                  }
                  else {
                    uVar8 = 0;
                  }
                }
                else {
                  uVar8 = 0xff;
                }
              }
              else {
                uVar8 = 0;
              }
              if (0.0 <= fVar35) {
                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar35)) {
                    uVar13 = 0;
                  }
                  else if (0.0 < fVar35) {
                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar13 = (int)dVar44 & 0xff;
                    }
                    else {
                      uVar13 = 0xff;
                    }
                  }
                  else {
                    uVar13 = 0;
                  }
                }
                else {
                  uVar13 = 0xff;
                }
              }
              else {
                uVar13 = 0;
              }
              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;
              if (local_84 != 0) {
                if (0.0 <= dVar48) {
                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {
                    fVar42 = (float)dVar48;
                    if (NAN(fVar42)) {
                      uVar8 = 0;
                    }
                    else if (0.0 < fVar42) {
                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <
                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +
                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar8 = (int)dVar44 & 0xff;
                      }
                      else {
                        uVar8 = 0xff;
                      }
                    }
                    else {
                      uVar8 = 0;
                    }
                  }
                  else {
                    uVar8 = 0xff;
                  }
                }
                else {
                  uVar8 = 0;
                }
                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;
              }
              iVar16 = uVar12 * 4;
              if (*(int *)(local_310 + iVar16) < 0) {
                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                fVar42 = fVar36;
                if (fVar43 <= fVar36) {
                  fVar42 = fVar43;
                }
                fVar47 = fVar39;
                if (fVar43 <= fVar39) {
                  fVar47 = fVar43;
                }
                if (fVar35 < fVar43) {
                  fVar43 = fVar35;
                }
                uVar12 = 7;
                dVar44 = *(double *)(puVar3 + -0x2a80);
                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);
                puVar20 = local_378[0];
                do {
                  uVar8 = 0;
                  if ((0.0 <= fVar36) &&
                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {
                    if ((double)fVar42 / dVar44 < dVar46) {
                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar8 = (int)dVar38 & 0xff;
                    }
                    else {
                      uVar8 = 0xff;
                    }
                  }
                  if (0.0 <= fVar39) {
                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                      if (NAN(fVar39)) {
                        uVar13 = 0;
                      }
                      else {
                        uVar13 = 0;
                        if (0.0 < fVar39) goto LAB_0016d63c;
                      }
                    }
                    else {
LAB_0016d63c:
                      uVar13 = 0xff;
                      if ((double)fVar47 / dVar44 < dVar46) {
                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar13 = (int)dVar38 & 0xff;
                      }
                    }
                  }
                  else {
                    uVar13 = 0;
                  }
                  if (0.0 <= fVar35) {
                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                      if (NAN(fVar35)) {
                        uVar9 = 0;
                      }
                      else {
                        if (0.0 < fVar35) goto LAB_0016d6f4;
                        uVar9 = 0;
                      }
                    }
                    else {
LAB_0016d6f4:
                      if ((double)fVar43 / dVar44 < dVar46) {
                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar9 = (int)dVar38 & 0xff;
                      }
                      else {
                        uVar9 = 0xff;
                      }
                    }
                  }
                  else {
                    uVar9 = 0;
                  }
                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |
                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |
                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;
                  if (local_84 != 0) {
                    if (0.0 <= dVar48) {
                      if (dVar48 < dVar31) {
                        fVar45 = (float)dVar48;
                        if (NAN(fVar45)) {
                          uVar13 = 0;
                        }
                        else if (0.0 < fVar45) {
                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                            dVar38 = (double)fVar45 / dVar32 +
                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                            }
                            uVar13 = (int)dVar38 & 0xff;
                          }
                          else {
                            uVar13 = 0xff;
                          }
                        }
                        else {
                          uVar13 = 0;
                        }
                      }
                      else {
                        uVar13 = 0xff;
                      }
                    }
                    else {
                      uVar13 = 0;
                    }
                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;
                  }
                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];
                  uVar12 = uVar12 - 1;
                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));
                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);
                local_360 = dVar40;
                local_358 = dVar37;
                local_350 = dVar33;
                local_348 = dVar48;
                FUN_00165e20(param_1,local_378,*puVar20);
                *(undefined4 *)(local_310 + iVar16) = local_320;
              }
              iVar16 = *(int *)(local_310 + iVar16);
              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {
                dVar44 = (double)iVar16;
                if (iVar16 < 0) {
                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
                }
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)
                     = (float)dVar44;
              }
              if (*(int *)(local_88 + 0x10) == 0) {
                iVar17 = iVar16 * 0x58;
                iVar19 = param_1[0xb4];
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =
                     (float)*(double *)(param_1[10] + iVar17 + 0x28);
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =
                     (float)*(double *)(param_1[10] + iVar17 + 0x30);
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)
                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);
                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {
                  *(float *)(param_1[0xb0] * 4 * iVar14 +
                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =
                       (float)*(double *)(param_1[10] + iVar17 + 0x48);
                }
              }
              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);
              if (iVar17 == 0) {
                bVar1 = false;
              }
              iVar16 = iVar16 * 0x58 + param_1[10];
              if ((local_84 == 0) ||
                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {
                dVar41 = *(double *)(iVar16 + 0x28);
                dVar38 = *(double *)(iVar16 + 0x30);
                dVar46 = *(double *)(iVar16 + 0x38);
                dVar44 = *(double *)(iVar16 + 0x48);
              }
              else {
                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);
                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);
                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);
                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);
              }
              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);
              *pdVar7 = dVar40 - dVar41;
              pdVar7[1] = dVar37 - dVar38;
              pdVar7[2] = dVar33 - dVar46;
              if (local_84 != 0) {
                pdVar7[3] = dVar48 - dVar44;
              }
              if ((param_1[0xca] != 0) &&
                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)
                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,
                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {
                bVar1 = false;
              }
              iVar25 = iVar25 + 1;
              iVar16 = param_1[6];
            } while (iVar25 < iVar16);
          }
        }
        else {
          bVar1 = false;
        }
        uVar27 = uVar27 + 1;
      } while ((int)uVar27 < param_1[7]);
    }
    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);
    FUN_00166940(local_390);
    uVar6 = 1;
  }
LAB_0016dc30:
  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {
    return uVar6;
  }
  iVar26 = local_5c;
  puVar28 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  (**(code **)(puVar28 + 0x28c55c))
            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,
             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);
  if (iVar26 == 0) {
    (**(code **)(puVar28 + 0x28c984))
              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,
               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);
  }
  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {
    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;
    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);
    return uVar6;
  }
  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;
  pcVar29 = *(code **)(puVar28 + 0x28c984);
  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,
             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);
  do {
    puVar20 = *(undefined4 **)(iVar26 + 0x60);
    iVar24 = puVar20[1];
    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);
    *puVar20 = uVar6;
    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));
    *(int *)(iVar26 + 0x60) = iVar24;
  } while (iVar24 != 0);
  if (*(int *)(iVar26 + 100) != 0) {
    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();
    *(undefined4 *)(iVar26 + 100) = uVar6;
  }
  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));
  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;
  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);
  return uVar6;
}


lui gp,0x29
addiu gp,gp,0x4c98
addu gp,gp,t9
addiu sp,sp,-0x418
sw ra,0x3e4(sp)
sw s8,0x3e0(sp)
sw s7,0x3dc(sp)
sw s6,0x3d8(sp)
sw s5,0x3d4(sp)
sw s4,0x3d0(sp)
sw s3,0x3cc(sp)
sw s2,0x3c8(sp)
sw s1,0x3c4(sp)
sw s0,0x3c0(sp)
sdc1 f30,0x410(sp)
sdc1 f28,0x408(sp)
sdc1 f26,0x400(sp)
sdc1 f24,0x3f8(sp)
sdc1 f22,0x3f0(sp)
sdc1 f20,0x3e8(sp)
sw gp,0x18(sp)
or s1,a0,zero
sw a1,0x8c(sp)
sw a2,0x28(sp)
lw v0,-0x7668(gp)
lw v0,0x0(v0)
sw v0,0x3bc(sp)
lw s4,0x18(a0)
li a0,0x7
lw t9,-0x775c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s3,v1,zero
li a1,0x4
or a0,v1,zero
lw t9,-0x738c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0016dc88
_sw v0,0x88(sp)
or s0,v0,zero
sll a2,s3,0x2
or a1,zero,zero
or a0,v0,zero
lw t9,-0x71c4(gp)
jalr t9
_nop
lw gp,0x18(sp)
blez s3,0x0016cd1c
_lw a1,-0x7fb8(gp)
or s2,zero,zero
li a1,0x40
or a0,s4,zero
lw t9,-0x738c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0016cd74
_sw v0,0x0(s0)
addiu s2,s2,0x1
bne s3,s2,0x0016ccec
_addiu s0,s0,0x4
lw a1,-0x7fb8(gp)
addiu a1,a1,-0x4d9c
or a0,s1,zero
lw t9,-0x73d8(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0016cd9c
_addiu a1,sp,0x9c
or a0,v0,zero
lw t9,-0x7130(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x9c(sp)
lb v1,0x0(v0)
li v0,0x25
bne v1,v0,0x0016cda4
_mov.D f28,f0
lw v0,-0x7fcc(gp)
ldc1 f0,-0x2a48(v0)
b 0x0016cda4
_mul.D f28,f28,f0
lw a0,0x88(sp)
lw t9,-0x7d6c(gp)
addiu t9,t9,0x6940
bal 0x00166940
_nop
lw gp,0x18(sp)
bne v0,zero,0x0016cd18
_sw v0,0x88(sp)
b 0x0016dc30
_or v0,zero,zero
lw v0,-0x7fd0(gp)
ldc1 f28,0x4408(v0)
lw a1,0x28(sp)
or a0,s1,zero
lw t9,-0x79c4(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw v0,0x34(sp)
lw v0,0x1c(s1)
blez v0,0x0016dc00
_or s4,zero,zero
li s5,0x1
lw s7,-0x7fd0(gp)
lw s8,-0x7fcc(gp)
ldc1 f0,0x4a48(s7)
sdc1 f0,0x78(sp)
ldc1 f0,-0x2a80(s8)
b 0x0016daf4
_sdc1 f0,0x90(sp)
b 0x0016da24
_or v1,s3,zero
lw a0,0x2d0(s1)
lw a2,0x8(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f4,0x0(a2)
cvt.d.S f4,f4
lw a2,0x14(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f2,0x0(a2)
cvt.d.S f2,f2
lw a2,0x20(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f0,0x0(a2)
lw a2,0x34(a0)
beq a2,zero,0x0016cfec
_cvt.d.S f0,f0
lw a0,0x38(a0)
sll a0,a0,0x2
addu v0,v0,a0
lwc1 f20,0x0(v0)
cvt.d.S f20,f20
blez s3,0x0016ceb0
_lw v0,-0x7fcc(gp)
ldc1 f8,0x2a0(v0)
mul.D f8,f28,f8
lw v0,0x2c(sp)
subu v0,v1,v0
sll v0,v0,0x5
lw a0,0x24(sp)
addu v0,a0,v0
ldc1 f6,0x0(v0)
mul.D f6,f8,f6
lw a0,-0x7fb8(gp)
ldc1 f10,-0x4a80(a0)
madd.D f4,f4,f6,f10
ldc1 f6,0x8(v0)
mul.D f6,f8,f6
madd.D f2,f2,f6,f10
ldc1 f6,0x10(v0)
mul.D f6,f8,f6
beq a1,zero,0x0016ceb0
_madd.D f0,f0,f6,f10
ldc1 f6,0x18(v0)
mul.D f8,f8,f6
madd.D f20,f20,f8,f10
blez s4,0x0016cfc4
_nop
lw v0,0x18(s1)
addiu v0,v0,-0x1
slt v0,s3,v0
beq v0,zero,0x0016cf14
_lw v0,-0x7fcc(gp)
lw v0,0x2c(sp)
addu v0,v0,v1
sll v0,v0,0x5
lw a0,0x30(sp)
addu v0,a0,v0
ldc1 f6,0x0(v0)
lw a0,-0x7fb8(gp)
ldc1 f8,-0x4a80(a0)
madd.D f4,f4,f6,f8
ldc1 f6,0x8(v0)
madd.D f2,f2,f6,f8
ldc1 f6,0x10(v0)
beq a1,zero,0x0016cf10
_madd.D f0,f0,f6,f8
ldc1 f8,0x18(v0)
ldc1 f6,-0x4a80(a0)
madd.D f20,f20,f8,f6
lw v0,-0x7fcc(gp)
ldc1 f8,-0xc88(v0)
mul.D f8,f28,f8
sll v0,s2,0x5
lw a0,0x30(sp)
addu v0,a0,v0
ldc1 f6,0x0(v0)
mul.D f6,f8,f6
lw a0,-0x7fb8(gp)
ldc1 f10,-0x4a80(a0)
madd.D f4,f4,f6,f10
ldc1 f6,0x8(v0)
mul.D f6,f8,f6
madd.D f2,f2,f6,f10
ldc1 f6,0x10(v0)
mul.D f6,f8,f6
beq a1,zero,0x0016cf64
_madd.D f0,f0,f6,f10
ldc1 f6,0x18(v0)
mul.D f8,f8,f6
madd.D f20,f20,f8,f10
blez s3,0x0016cfc4
_lw v0,-0x7fcc(gp)
ldc1 f8,-0xcc0(v0)
mul.D f8,f28,f8
lw v0,0x2c(sp)
subu v1,v1,v0
sll v1,v1,0x5
lw v0,0x30(sp)
addu v1,v0,v1
ldc1 f6,0x0(v1)
mul.D f6,f8,f6
lw v0,-0x7fb8(gp)
ldc1 f10,-0x4a80(v0)
madd.D f4,f4,f6,f10
ldc1 f6,0x8(v1)
mul.D f6,f8,f6
madd.D f2,f2,f6,f10
ldc1 f6,0x10(v1)
mul.D f6,f8,f6
beq a1,zero,0x0016cfc4
_madd.D f0,f0,f6,f10
ldc1 f6,0x18(v1)
mul.D f8,f8,f6
madd.D f20,f20,f8,f10
mtc1 zero,f6
mthc1 zero,f6
c.lt.D f4,f6
bc1t 0x1,0x0016cff8
_ldc1 f6,0x4a48(s7)
c.le.D f6,f4
bc1t 0x2,0x0016d028
_lw v0,-0x7fd0(gp)
b 0x0016cffc
_cvt.s.D f4,f4
lw v0,-0x7fd0(gp)
b 0x0016ce4c
_lwc1 f20,0x4aa8(v0)
mtc1 zero,f4
mtc1 zero,f6
mthc1 zero,f6
c.lt.D f2,f6
bc1t 0x3,0x0016d030
_cvt.d.S f24,f4
ldc1 f6,0x4a48(s7)
c.le.D f6,f2
bc1t 0x4,0x0016d060
_lw v0,-0x7fd0(gp)
b 0x0016d034
_cvt.s.D f2,f2
b 0x0016cffc
_lwc1 f4,0x4aa8(v0)
mtc1 zero,f2
mtc1 zero,f6
mthc1 zero,f6
c.lt.D f0,f6
bc1t 0x5,0x0016d068
_cvt.d.S f22,f2
ldc1 f6,0x4a48(s7)
c.le.D f6,f0
bc1t 0x6,0x0016d09c
_lw v0,-0x7fd0(gp)
b 0x0016d06c
_cvt.s.D f0,f0
b 0x0016d034
_lwc1 f2,0x4aa8(v0)
mtc1 zero,f0
beq a1,zero,0x0016d0ac
_cvt.d.S f26,f0
mtc1 zero,f6
mthc1 zero,f6
c.lt.D f20,f6
bc1t 0x7,0x0016d0a4
_ldc1 f6,0x4a48(s7)
c.le.D f6,f20
bc1t 0x0016d12c
_lw v0,-0x7fd0(gp)
b 0x0016d0a8
_cvt.s.D f20,f20
b 0x0016d06c
_lwc1 f0,0x4aa8(v0)
mtc1 zero,f20
cvt.d.S f20,f20
mtc1 zero,f6
c.lt.S f4,f6
bc1t 0x1,0x0016d148
_lw v0,-0x7fd0(gp)
lwc1 f6,0x4aa8(v0)
c.le.S f6,f4
bc1t 0x2,0x0016d14c
_li v1,0xff
c.un.S f4,f4
bc1t 0x3,0x0016d1cc
_mtc1 zero,f6
c.le.S f4,f6
bc1t 0x4,0x0016d1d4
_ldc1 f10,-0x2a80(s8)
cvt.d.S f6,f4
div.D f6,f6,f10
lw a0,-0x7fcc(gp)
ldc1 f8,-0x2a78(a0)
c.le.D f8,f6
bc1t 0x5,0x0016d1dc
_lw a0,-0x7fd0(gp)
ldc1 f8,0x43d0(a0)
add.D f6,f6,f8
lw a0,-0x7fd0(gp)
ldc1 f8,0x43e0(a0)
c.le.D f8,f6
bc1t 0x6,0x0016d134
_lui v0,0x8000
trunc.w.D f6,f6
mfc1 v1,f6
b 0x0016d14c
_andi v1,v1,0xff
b 0x0016d0a8
_lwc1 f20,0x4aa8(v0)
sub.D D f6,f6,f8
trunc.w.D f6,f6
mfc1 v1,f6
b 0x0016d124
_or v1,v1,v0
or v1,zero,zero
mtc1 zero,f6
c.lt.S f2,f6
bc1t 0x7,0x0016d1f8
_srl v1,v1,0x2
lw v0,-0x7fd0(gp)
lwc1 f6,0x4aa8(v0)
c.le.S f6,f2
bc1t 0x0016d284
_c.un.S f2,f2
bc1t 0x1,0x0016d28c
_mtc1 zero,f6
c.le.S f2,f6
bc1t 0x2,0x0016d294
_ldc1 f10,-0x2a80(s8)
cvt.d.S f6,f2
div.D f6,f6,f10
lw a0,-0x7fcc(gp)
ldc1 f8,-0x2a78(a0)
c.le.D f8,f6
bc1t 0x3,0x0016d29c
_lw a0,-0x7fd0(gp)
ldc1 f8,0x43d0(a0)
add.D f6,f6,f8
lw a0,-0x7fd0(gp)
ldc1 f8,0x43e0(a0)
c.le.D f8,f6
bc1t 0x4,0x0016d1e4
_lui a0,0x8000
trunc.w.D f6,f6
mfc1 v0,f6
b 0x0016d1fc
_andi v0,v0,0xff
b 0x0016d14c
_or v1,zero,zero
b 0x0016d14c
_or v1,zero,zero
b 0x0016d14c
_li v1,0xff
sub.D D f6,f6,f8
trunc.w.D f6,f6
mfc1 v0,f6
b 0x0016d1c4
_or v0,v0,a0
or v0,zero,zero
srl v0,v0,0x2
sll s0,v0,0x6
mtc1 zero,f6
c.lt.S f0,f6
bc1t 0x5,0x0016d2b8
_or v0,s0,v1
lw v1,-0x7fd0(gp)
lwc1 f6,0x4aa8(v1)
c.le.S f6,f0
bc1t 0x6,0x0016d350
_c.un.S f0,f0
bc1t 0x7,0x0016d358
_mtc1 zero,f6
c.le.S f0,f6
bc1t 0x0016d360
_ldc1 f10,-0x2a80(s8)
cvt.d.S f6,f0
div.D f6,f6,f10
lw a0,-0x7fcc(gp)
ldc1 f8,-0x2a78(a0)
c.le.D f8,f6
bc1t 0x1,0x0016d368
_lw a0,-0x7fd0(gp)
ldc1 f8,0x43d0(a0)
add.D f6,f6,f8
lw a0,-0x7fd0(gp)
ldc1 f8,0x43e0(a0)
c.le.D f8,f6
bc1t 0x2,0x0016d2a4
_lui a0,0x8000
trunc.w.D f6,f6
mfc1 v1,f6
b 0x0016d2bc
_andi v1,v1,0xff
b 0x0016d1fc
_li v0,0xff
b 0x0016d1fc
_or v0,zero,zero
b 0x0016d1fc
_or v0,zero,zero
b 0x0016d1fc
_li v0,0xff
sub.D D f6,f6,f8
trunc.w.D f6,f6
mfc1 v1,f6
b 0x0016d27c
_or v1,v1,a0
or v1,zero,zero
srl s0,v1,0x2
sll s0,s0,0xc
beq a1,zero,0x0016d394
_or s0,s0,v0
mtc1 zero,f6
mthc1 zero,f6
c.lt.D f20,f6
bc1t 0x3,0x0016d384
_ldc1 f6,0x4a48(s7)
c.le.D f6,f20
bc1t 0x4,0x0016d52c
_nop
cvt.s.D f6,f20
c.un.S f6,f6
bc1t 0x5,0x0016d534
_mtc1 zero,f8
c.le.S f6,f8
bc1t 0x6,0x0016d53c
_ldc1 f8,-0x2a80(s8)
cvt.d.S f6,f6
div.D f6,f6,f8
lw v1,-0x7fcc(gp)
ldc1 f8,-0x2a78(v1)
c.le.D f8,f6
bc1t 0x7,0x0016d544
_lw v1,-0x7fd0(gp)
ldc1 f8,0x43d0(v1)
add.D f6,f6,f8
lw v1,-0x7fd0(gp)
ldc1 f8,0x43e0(v1)
c.le.D f8,f6
bc1t 0x0016d370
_lui v1,0x8000
trunc.w.D f6,f6
mfc1 v0,f6
b 0x0016d388
_andi v0,v0,0xff
b 0x0016d2bc
_li v1,0xff
b 0x0016d2bc
_or v1,zero,zero
b 0x0016d2bc
_or v1,zero,zero
b 0x0016d2bc
_li v1,0xff
sub.D D f6,f6,f8
trunc.w.D f6,f6
mfc1 v0,f6
b 0x0016d348
_or v0,v0,v1
or v0,zero,zero
srl v0,v0,0x2
sll v0,v0,0x12
or s0,s0,v0
sll s0,s0,0x2
lw v0,0x108(sp)
addu v0,v0,s0
lw v0,0x0(v0)
bltz v0,0x0016d54c
_lw a3,0xa0(sp)
lw v0,0x108(sp)
addu s0,v0,s0
lw v1,0x0(s1)
li v0,0x2
beq v1,v0,0x0016d928
_lw s0,0x0(s0)
lw v0,0x390(sp)
lw v0,0x10(v0)
bne v0,zero,0x0016d4c4
_lw a1,0x28(sp)
li a0,0x58
mul a0,s0,a0
lw v0,0x2c0(s1)
sll v0,v0,0x2
lw a1,0x2d0(s1)
lw v1,0x8(a1)
sll v1,v1,0x2
addu v1,s6,v1
mul a2,v0,s2
addu v0,a2,v1
lw v1,0x28(s1)
addu v1,v1,a0
ldc1 f0,0x28(v1)
cvt.s.D f0,f0
swc1 f0,0x0(v0)
lw v0,0x2c0(s1)
sll v0,v0,0x2
lw v1,0x14(a1)
sll v1,v1,0x2
addu v1,s6,v1
mul a1,v0,s2
addu v0,a1,v1
lw v1,0x28(s1)
addu v1,v1,a0
ldc1 f0,0x30(v1)
cvt.s.D f0,f0
swc1 f0,0x0(v0)
lw v0,0x2c0(s1)
sll v0,v0,0x2
lw v1,0x2d0(s1)
lw v1,0x20(v1)
sll v1,v1,0x2
addu v1,s6,v1
mul a1,v0,s2
addu v0,a1,v1
lw v1,0x28(s1)
addu v1,v1,a0
ldc1 f0,0x38(v1)
cvt.s.D f0,f0
swc1 f0,0x0(v0)
lw v0,0x394(sp)
beq v0,zero,0x0016d4c4
_lw a1,0x28(sp)
lw v0,0x2d0(s1)
lw v1,0x34(v0)
beq v1,zero,0x0016d4c4
_nop
lw v1,0x2c0(s1)
sll a1,v1,0x2
lw v1,0x38(v0)
sll v1,v1,0x2
addu v1,s6,v1
mul v0,a1,s2
addu v1,v0,v1
lw v0,0x28(s1)
addu a0,v0,a0
ldc1 f0,0x48(a0)
cvt.s.D f0,f0
swc1 f0,0x0(v1)
lw a1,0x28(sp)
lw a0,0x34(sp)
lw t9,-0x73a0(gp)
jalr t9
_nop
lw gp,0x18(sp)
movz s5,zero,v0
lw v0,0x28(s1)
li v1,0x58
mul a0,s0,v1
addu s0,a0,v0
lw v0,0x394(sp)
beq v0,zero,0x0016d978
_ldc1 f0,0x4a48(s7)
ldc1 f4,0x48(s0)
c.eq.D f4,f0
bc1t 0x4,0x0016d978
_lw v0,0x74(sp)
ldc1 f0,0x4410(v0)
mul.D f0,f4,f0
ldc1 f6,0x28(s0)
mul.D f6,f0,f6
ldc1 f2,0x30(s0)
mul.D f2,f0,f2
ldc1 f8,0x38(s0)
b 0x0016d988
_mul.D f0,f0,f8
b 0x0016d388
_li v0,0xff
b 0x0016d388
_or v0,zero,zero
b 0x0016d388
_or v0,zero,zero
b 0x0016d388
_li v0,0xff
lw v0,-0x7fd0(gp)
lwc1 f6,0x4aa8(v0)
c.le.S f6,f4
mov.S f14,f4
movt.S f14,f6,0x1
c.le.S f6,f2
mov.S f12,f2
movt.S f12,f6,0x2
c.le.S f6,f0
movf.S f6,f0,0x3
li a2,0x7
or t0,v0,zero
lwc1 f10,0x4aa8(v0)
ldc1 f16,-0x2a80(s8)
lw t3,-0x7fcc(gp)
ldc1 f30,-0x2a78(t3)
lw t2,-0x7fd0(gp)
ldc1 f8,0x43d0(t2)
sdc1 f8,0x58(sp)
lw t1,-0x7fd0(gp)
ldc1 f8,0x43e0(t1)
sdc1 f8,0x40(sp)
mfc1 t5,f16
mfhc1 t4,f16
mfc1 t7,f30
mfhc1 t6,f30
ldc1 f8,0x43d0(t2)
sdc1 f8,0x60(sp)
ldc1 f8,0x43e0(t1)
sdc1 f8,0x48(sp)
or t9,t5,zero
or t8,t4,zero
mtc1 t7,f8
mthc1 t6,f8
sdc1 f8,0x38(sp)
ldc1 f8,0x43d0(t2)
sdc1 f8,0x68(sp)
ldc1 f8,0x43e0(t1)
b 0x0016d84c
_sdc1 f8,0x50(sp)
sub.D D f8,f8,f18
trunc.w.D f8,f8
mfc1 v1,f8
lui v0,0x8000
b 0x0016d8ac
_or v1,v1,v0
srav v1,v1,a2
mtc1 zero,f8
c.lt.S f2,f8
bc1t 0x2,0x0016d6b0
_andi a0,v1,0x1
lwc1 f8,0x4aa8(t0)
c.le.S f8,f2
bc1t 0x3,0x0016d63c
_c.un.S f2,f2
bc1t 0x4,0x0016d738
_mtc1 zero,f8
c.le.S f2,f8
bc1t 0x5,0x0016d6b4
_or v0,zero,zero
cvt.d.S f8,f12
mtc1 t5,f18
mthc1 t4,f18
div.D f8,f8,f18
mtc1 t7,f18
mthc1 t6,f18
c.le.D f18,f8
bc1t 0x6,0x0016d6b4
_li v0,0xff
ldc1 f18,0x60(sp)
add.D f8,f8,f18
ldc1 f18,0x48(sp)
c.le.D f18,f8
bc1t 0x7,0x0016d698
_nop
trunc.w.D f8,f8
mfc1 v0,f8
b 0x0016d6b4
_andi v0,v0,0xff
b 0x0016d604
_li v1,0xff
sub.D D f8,f8,f18
trunc.w.D f8,f8
mfc1 v0,f8
lui v1,0x8000
b 0x0016d680
_or v0,v0,v1
or v0,zero,zero
srav v0,v0,a2
sll v0,v0,0x1
andi v0,v0,0x2
mtc1 zero,f8
c.lt.S f0,f8
bc1t 0x0016d760
_or v1,v0,a0
lwc1 f8,0x4aa8(t0)
c.le.S f8,f0
bc1t 0x1,0x0016d6f4
_c.un.S f0,f0
bc1t 0x2,0x0016d7f0
_mtc1 zero,f8
c.le.S f0,f8
bc1t 0x3,0x0016d7f8
_nop
cvt.d.S f8,f6
mtc1 t9,f18
mthc1 t8,f18
div.D f8,f8,f18
ldc1 f18,0x38(sp)
c.le.D f18,f8
bc1t 0x4,0x0016d800
_ldc1 f18,0x68(sp)
add.D f8,f8,f18
ldc1 f18,0x50(sp)
c.le.D f18,f8
bc1t 0x5,0x0016d748
_nop
trunc.w.D f8,f8
mfc1 v0,f8
b 0x0016d764
_andi v0,v0,0xff
b 0x0016d6b4
_or v0,zero,zero
sub.D D f8,f8,f18
trunc.w.D f8,f8
mfc1 v0,f8
lui a0,0x8000
b 0x0016d730
_or v0,v0,a0
or v0,zero,zero
srav v0,v0,a2
sll v0,v0,0x2
andi v0,v0,0x4
beq a1,zero,0x0016d830
_or v0,v0,v1
mtc1 zero,f8
mthc1 zero,f8
c.lt.D f20,f8
bc1t 0x6,0x0016d81c
_ldc1 f8,0x78(sp)
c.le.D f8,f20
bc1t 0x7,0x0016d8b4
_nop
cvt.s.D f8,f20
c.un.S f8,f8
bc1t 0x0016d8bc
_mtc1 zero,f18
c.le.S f8,f18
bc1t 0x1,0x0016d8c4
_ldc1 f18,0x90(sp)
cvt.d.S f8,f8
div.D f8,f8,f18
ldc1 f18,-0x2a78(t3)
c.le.D f18,f8
bc1t 0x2,0x0016d8cc
_ldc1 f18,0x43d0(t2)
add.D f8,f8,f18
ldc1 f18,0x43e0(t1)
c.le.D f18,f8
bc1t 0x3,0x0016d808
_lui a0,0x8000
trunc.w.D f8,f8
mfc1 v1,f8
b 0x0016d820
_andi v1,v1,0xff
b 0x0016d764
_or v0,zero,zero
b 0x0016d764
_or v0,zero,zero
b 0x0016d764
_li v0,0xff
sub.D D f8,f8,f18
trunc.w.D f8,f8
mfc1 v1,f8
b 0x0016d7e8
_or v1,v1,a0
or v1,zero,zero
srav v1,v1,a2
sll v1,v1,0x3
andi v1,v1,0x8
or v0,v0,v1
sll v0,v0,0x2
addu v0,a3,v0
lw v0,0x4(v0)
beq v0,zero,0x0016d8d4
_addiu a2,a2,-0x1
beq a2,zero,0x0016d8d8
_or a3,v0,zero
mtc1 zero,f8
c.lt.S f4,f8
bc1t 0x4,0x0016d604
_or v1,zero,zero
c.le.S f10,f4
bc1t 0x5,0x0016d87c
_c.un.S f4,f4
bc1t 0x6,0x0016d604
_nop
c.le.S f4,f8
bc1t 0x7,0x0016d604
_nop
cvt.d.S f8,f14
div.D f8,f8,f16
c.le.D f30,f8
bc1t 0x0016d690
_ldc1 f18,0x58(sp)
add.D f8,f8,f18
ldc1 f18,0x40(sp)
c.le.D f18,f8
bc1t 0x1,0x0016d5ec
_nop
trunc.w.D f8,f8
mfc1 v1,f8
b 0x0016d604
_andi v1,v1,0xff
b 0x0016d820
_li v1,0xff
b 0x0016d820
_or v1,zero,zero
b 0x0016d820
_or v1,zero,zero
b 0x0016d820
_li v1,0xff
or v0,a3,zero
sdc1 f24,0xb8(sp)
sdc1 f22,0xc0(sp)
sdc1 f26,0xc8(sp)
sdc1 f20,0xd0(sp)
lw v1,-0x7fb8(gp)
ldc1 f0,-0x4a88(v1)
sdc1 f0,0xd8(sp)
lw a2,0x0(v0)
addiu a1,sp,0xa0
or a0,s1,zero
lw t9,-0x7d6c(gp)
addiu t9,t9,0x5e20
bal 0x00165e20
_nop
lw gp,0x18(sp)
lw v0,0x108(sp)
addu v0,v0,s0
lw v1,0xf8(sp)
b 0x0016d3ac
_sw v1,0x0(v0)
lw v0,0x2d0(s1)
lw v1,0x40(v0)
beq v1,zero,0x0016d3c4
_mtc1 s0,f0
lw v1,0x2c0(s1)
sll v1,v1,0x2
lw v0,0x44(v0)
sll v0,v0,0x2
addu v0,s6,v0
mul a0,v1,s2
addu v0,a0,v0
bltz s0,0x0016d968
_cvt.d.W f0,f0
cvt.s.D f0,f0
b 0x0016d3c4
_swc1 f0,0x0(v0)
lw a0,-0x7fd0(gp)
ldc1 f2,0x43e8(a0)
b 0x0016d95c
_add.D f0,f0,f2
ldc1 f6,0x28(s0)
ldc1 f2,0x30(s0)
ldc1 f0,0x38(s0)
ldc1 f4,0x48(s0)
sll s2,s2,0x5
lw v0,0x24(sp)
addu s2,v0,s2
sub.D D f24,f24,f6
sdc1 f24,0x0(s2)
sub.D D f22,f22,f2
sdc1 f22,0x8(s2)
sub.D D f26,f26,f0
sdc1 f26,0x10(s2)
lw v0,0x394(sp)
beq v0,zero,0x0016d9c0
_nop
sub.D D f20,f20,f4
sdc1 f20,0x18(s2)
lw v0,0x328(s1)
beq v0,zero,0x0016d9fc
_sra a2,s4,0x1f
lw v0,0x1c(s1)
sw v0,0x14(sp)
sw zero,0x10(sp)
or a3,s4,zero
lw a1,-0x7fb8(gp)
addiu a1,a1,-0x4ddc
or a0,s1,zero
lw t9,-0x7be4(gp)
jalr t9
_nop
lw gp,0x18(sp)
movz s5,zero,v0
addiu s3,s3,0x1
lw v1,0x18(s1)
slt v0,s3,v1
beq v0,zero,0x0016dae0
_nop
lw v0,0x70(sp)
beq v0,zero,0x0016cdec
_nop
addiu v1,v1,-0x1
subu v1,v1,s3
or s2,v1,zero
lw v0,0x2c0(s1)
sll v0,v0,0x2
mul a0,v0,v1
lw a1,0x394(sp)
beq a1,zero,0x0016cdf4
_addu v0,a0,s6
lw a0,0x2d0(s1)
lw a2,0x34(a0)
beq a2,zero,0x0016cdf8
_nop
lw a2,0x38(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f0,0x0(a2)
lw a2,-0x7fd0(gp)
lwc1 f2,0x4aa8(a2)
c.eq.S f0,f2
bc1t 0x0016cdf8
_ldc1 f2,0x80(sp)
cvt.d.S f0,f0
mul.D f6,f0,f2
lw a2,0x8(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f4,0x0(a2)
cvt.d.S f4,f4
mul.D f4,f4,f6
lw a2,0x14(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f2,0x0(a2)
cvt.d.S f2,f2
mul.D f2,f2,f6
lw a2,0x20(a0)
sll a2,a2,0x2
addu a2,v0,a2
lwc1 f0,0x0(a2)
cvt.d.S f0,f0
mul.D f0,f0,f6
lw a0,0x38(a0)
sll a0,a0,0x2
addu v0,v0,a0
lwc1 f20,0x0(v0)
b 0x0016ce50
_cvt.d.S f20,f20
or s5,zero,zero
addiu s4,s4,0x1
lw v0,0x1c(s1)
slt v0,s4,v0
beq v0,zero,0x0016dc04
_lw a0,0x34(sp)
lw t9,-0x7390(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq s5,zero,0x0016dadc
_or s0,v0,zero
lw v0,0x28(sp)
sw v0,0x14(sp)
li v0,0x1
sw v0,0x10(sp)
lw a3,0x18(s1)
or a2,s4,zero
or a1,zero,zero
lw a0,0x34(sp)
lw t9,-0x724c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0016dadc
_or s6,v0,zero
lw a0,0x8c(sp)
or v0,a0,zero
addiu v1,sp,0xa0
addiu a0,a0,0x310
lw t0,0x0(v0)
lw a3,0x4(v0)
lw a2,0x8(v0)
lw a1,0xc(v0)
sw t0,0x0(v1)
sw a3,0x4(v1)
sw a2,0x8(v1)
sw a1,0xc(v1)
addiu v0,v0,0x10
bne v0,a0,0x0016db54
_addiu v1,v1,0x10
lw a0,0x0(v0)
lw v0,0x4(v0)
sw a0,0x0(v1)
sw v0,0x4(v1)
sll s0,s0,0x2
lw v0,0x88(sp)
addu s0,v0,s0
lw a1,0x0(s0)
lw v1,0x18(s1)
sll a2,v1,0x5
andi a0,s4,0x1
mul a3,a0,a2
addu v0,a3,a1
sw v0,0x24(sp)
addiu v0,s4,0x1
andi v0,v0,0x1
mul a3,v0,a2
addu v0,a3,a1
sw v0,0x30(sp)
or a1,a0,zero
sw a0,0x70(sp)
li a0,-0x1
li v0,0x1
movn v0,a0,a1
blez v1,0x0016dae0
_sw v0,0x2c(sp)
or s3,zero,zero
lw v0,-0x7fd0(gp)
sw v0,0x74(sp)
ldc1 f0,0x4410(v0)
b 0x0016da10
_sdc1 f0,0x80(sp)
lw a0,0x34(sp)
lw t9,-0x79a4(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x88(sp)
lw t9,-0x7d6c(gp)
addiu t9,t9,0x6940
bal 0x00166940
_nop
lw gp,0x18(sp)
li v0,0x1
lw a0,0x3bc(sp)
lw v1,-0x7668(gp)
lw v1,0x0(v1)
bne a0,v1,0x0016dc90
_lw ra,0x3e4(sp)
lw s8,0x3e0(sp)
lw s7,0x3dc(sp)
lw s6,0x3d8(sp)
lw s5,0x3d4(sp)
lw s4,0x3d0(sp)
lw s3,0x3cc(sp)
lw s2,0x3c8(sp)
lw s1,0x3c4(sp)
lw s0,0x3c0(sp)
ldc1 f30,0x410(sp)
ldc1 f28,0x408(sp)
ldc1 f26,0x400(sp)
ldc1 f24,0x3f8(sp)
ldc1 f22,0x3f0(sp)
ldc1 f20,0x3e8(sp)
jr ra
_addiu sp,sp,0x418
b 0x0016dc30
_or v0,zero,zero
lw t9,-0x7834(gp)
jalr t9
_nop
(translation_unit "undefined4 FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}\n\n" (function_definition "undefined4 FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}" type_identifier (function_declarator "FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)" identifier (parameter_list "(int *param_1,undefined4 *param_2,undefined4 param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 **ppuVar15;" type_identifier (pointer_declarator "**ppuVar15" * (pointer_declarator "*ppuVar15" * identifier)) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "float fVar35;" primitive_type identifier ;) (declaration "float fVar36;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "float fVar39;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar42;" primitive_type identifier ;) (declaration "float fVar43;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "float fVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "float fVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "int *local_390;" primitive_type (pointer_declarator "*local_390" * identifier) ;) (declaration "char *local_37c;" primitive_type (pointer_declarator "*local_37c" * identifier) ;) (declaration "undefined4 *local_378 [6];" type_identifier (pointer_declarator "*local_378 [6]" * (array_declarator "local_378 [6]" identifier [ number_literal ])) ;) (declaration "double local_360;" primitive_type identifier ;) (declaration "double local_358;" primitive_type identifier ;) (declaration "double local_350;" primitive_type identifier ;) (declaration "double local_348;" primitive_type identifier ;) (declaration "undefined8 local_340;" type_identifier identifier ;) (declaration "undefined4 local_320;" type_identifier identifier ;) (declaration "int local_310;" primitive_type identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar26 = param_1[6];" (assignment_expression "iVar26 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003fa154" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003fa154" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);" (assignment_expression "local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" identifier = (cast_expression "(int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(extraout_v1,4)" ( identifier , number_literal ))))) ;) (if_statement "if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" if (parenthesized_expression "(local_390 == (int *)0x0)" ( (binary_expression "local_390 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = 0;\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" else (compound_statement "{\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" { (expression_statement "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);" (call_expression "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_003fa6ec)" ( (pointer_expression "*(code *)PTR_memset_003fa6ec" * (cast_expression "(code *)PTR_memset_003fa6ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_390,0,extraout_v1 << 2)" ( identifier , number_literal , (binary_expression "extraout_v1 << 2" identifier << number_literal) ))) ;) (if_statement "if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }" if (parenthesized_expression "(0 < extraout_v1)" ( (binary_expression "0 < extraout_v1" number_literal < identifier) )) (compound_statement "{\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "piVar23 = local_390;" (assignment_expression "piVar23 = local_390" identifier = identifier) ;) (do_statement "do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);" do (compound_statement "{\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);" (assignment_expression "iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar26,0x40)" ( identifier , number_literal )))) ;) (expression_statement "*piVar23 = iVar5;" (assignment_expression "*piVar23 = iVar5" (pointer_expression "*piVar23" * identifier) = identifier) ;) (if_statement "if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" { (expression_statement "local_390 = (int *)FUN_00166940(local_390);" (assignment_expression "local_390 = (int *)FUN_00166940(local_390)" identifier = (cast_expression "(int *)FUN_00166940(local_390)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00166940(local_390)" identifier (argument_list "(local_390)" ( identifier ))))) ;) (if_statement "if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }" if (parenthesized_expression "(local_390 == (int *)0x0)" ( (binary_expression "local_390 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0016dc30;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar23 = piVar23 + 1;" (assignment_expression "piVar23 = piVar23 + 1" identifier = (binary_expression "piVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(extraout_v1 != iVar24)" ( (binary_expression "extraout_v1 != iVar24" identifier != identifier) )) ;) })) (expression_statement "iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);" (assignment_expression "iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" identifier = (call_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" (parenthesized_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)" ( (pointer_expression "*(code *)PTR_GetImageArtifact_003fa4d8" * (cast_expression "(code *)PTR_GetImageArtifact_003fa4d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" ( identifier , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c" identifier + number_literal) )))) ;) (if_statement "if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }" { (expression_statement "dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" else (compound_statement "{\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" { (expression_statement "dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);" (assignment_expression "dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" identifier = (cast_expression "(double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)" ( (pointer_expression "*(code *)PTR_InterpretLocaleValue_003fa780" * (cast_expression "(code *)PTR_InterpretLocaleValue_003fa780" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar26,&local_37c)" ( identifier , (pointer_expression "&local_37c" & identifier) ))))) ;) (if_statement "if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" if (parenthesized_expression "(*local_37c == '%')" ( (binary_expression "*local_37c == '%'" (pointer_expression "*local_37c" * identifier) == (char_literal "'%'" ' character ')) )) (compound_statement "{\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" { (expression_statement "dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);" (assignment_expression "dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a48)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a48)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a48" identifier + number_literal) )))))) ;) })) }))) (expression_statement "uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);" (assignment_expression "uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3)" identifier = (call_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)" ( (pointer_expression "*(code *)PTR_AcquireAuthenticCacheView_003f9eec" * (cast_expression "(code *)PTR_AcquireAuthenticCacheView_003f9eec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;) (expression_statement "puVar3 = PTR_UINT_003f98e4;" (assignment_expression "puVar3 = PTR_UINT_003f98e4" identifier = identifier) ;) (expression_statement "puVar28 = PTR_LAB_003f98e0;" (assignment_expression "puVar28 = PTR_LAB_003f98e0" identifier = identifier) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }" if (parenthesized_expression "(0 < param_1[7])" ( (binary_expression "0 < param_1[7]" number_literal < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) (compound_statement "{\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a48" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);" (assignment_expression "dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80)" identifier = (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a80)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a80)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a80" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);" do (compound_statement "{\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      }" { (expression_statement "iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }" if (parenthesized_expression "((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0))" ( (binary_expression "(bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)" ( (comma_expression "iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0" (assignment_expression "iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,0,uVar27,param_1[6],1,param_3)" ( identifier , number_literal , identifier , (subscript_expression "param_1[6]" identifier [ number_literal ]) , number_literal , identifier )))) , (comma_expression "puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0" (assignment_expression "puVar2 = PTR_LAB_003f98e0" identifier = identifier) , (binary_expression "iVar24 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }" { (expression_statement "puVar20 = param_2;" (assignment_expression "puVar20 = param_2" identifier = identifier) ;) (expression_statement "ppuVar4 = local_378;" (assignment_expression "ppuVar4 = local_378" identifier = identifier) ;) (do_statement "do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);" do (compound_statement "{\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          }" { (expression_statement "ppuVar15 = ppuVar4;" (assignment_expression "ppuVar15 = ppuVar4" identifier = identifier) ;) (expression_statement "puVar10 = puVar20;" (assignment_expression "puVar10 = puVar20" identifier = identifier) ;) (expression_statement "puVar22 = (undefined4 *)puVar10[1];" (assignment_expression "puVar22 = (undefined4 *)puVar10[1]" identifier = (cast_expression "(undefined4 *)puVar10[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar21 = (undefined4 *)puVar10[2];" (assignment_expression "puVar21 = (undefined4 *)puVar10[2]" identifier = (cast_expression "(undefined4 *)puVar10[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar20 = (undefined4 *)puVar10[3];" (assignment_expression "puVar20 = (undefined4 *)puVar10[3]" identifier = (cast_expression "(undefined4 *)puVar10[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[3]" identifier [ number_literal ]))) ;) (expression_statement "*ppuVar15 = (undefined4 *)*puVar10;" (assignment_expression "*ppuVar15 = (undefined4 *)*puVar10" (pointer_expression "*ppuVar15" * identifier) = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "ppuVar15[1] = puVar22;" (assignment_expression "ppuVar15[1] = puVar22" (subscript_expression "ppuVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar15[2] = puVar21;" (assignment_expression "ppuVar15[2] = puVar21" (subscript_expression "ppuVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar15[3] = puVar20;" (assignment_expression "ppuVar15[3] = puVar20" (subscript_expression "ppuVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20 = puVar10 + 4;" (assignment_expression "puVar20 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "ppuVar4 = ppuVar15 + 4;" (assignment_expression "ppuVar4 = ppuVar15 + 4" identifier = (binary_expression "ppuVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 != param_2 + 0xc4)" ( (binary_expression "puVar20 != param_2 + 0xc4" identifier != (binary_expression "param_2 + 0xc4" identifier + number_literal)) )) ;) (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar15[4] = (undefined4 *)*puVar20;" (assignment_expression "ppuVar15[4] = (undefined4 *)*puVar20" (subscript_expression "ppuVar15[4]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)*puVar20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (expression_statement "ppuVar15[5] = puVar10;" (assignment_expression "ppuVar15[5] = puVar10" (subscript_expression "ppuVar15[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar16 = param_1[6];" (assignment_expression "iVar16 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = uVar27 & 1;" (assignment_expression "uVar18 = uVar27 & 1" identifier = (binary_expression "uVar27 & 1" identifier & number_literal)) ;) (expression_statement "iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];" (assignment_expression "iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26]" identifier = (binary_expression "uVar18 * iVar16 * 0x20 + local_390[iVar26]" (binary_expression "uVar18 * iVar16 * 0x20" (binary_expression "uVar18 * iVar16" identifier * identifier) * number_literal) + (subscript_expression "local_390[iVar26]" identifier [ identifier ]))) ;) (expression_statement "iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];" (assignment_expression "iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26]" identifier = (binary_expression "(uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26]" (binary_expression "(uVar27 + 1 & 1) * iVar16 * 0x20" (binary_expression "(uVar27 + 1 & 1) * iVar16" (parenthesized_expression "(uVar27 + 1 & 1)" ( (binary_expression "uVar27 + 1 & 1" (binary_expression "uVar27 + 1" identifier + number_literal) & number_literal) )) * identifier) * number_literal) + (subscript_expression "local_390[iVar26]" identifier [ identifier ]))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (uVar18 != 0) {\n            iVar11 = -1;\n          }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar11 = -1;\n          }" { (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) })) (if_statement "if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);" do (compound_statement "{\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            }" { (expression_statement "iVar14 = iVar25;" (assignment_expression "iVar14 = iVar25" identifier = identifier) ;) (if_statement "if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar14 = (iVar16 + -1) - iVar25;\n              }" { (expression_statement "iVar14 = (iVar16 + -1) - iVar25;" (assignment_expression "iVar14 = (iVar16 + -1) - iVar25" identifier = (binary_expression "(iVar16 + -1) - iVar25" (parenthesized_expression "(iVar16 + -1)" ( (binary_expression "iVar16 + -1" identifier + number_literal) )) - identifier)) ;) })) (expression_statement "iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;" (assignment_expression "iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24" identifier = (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier)) ;) (if_statement "if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }" { (expression_statement "iVar17 = param_1[0xb4];" (assignment_expression "iVar17 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);" statement_identifier : (expression_statement "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);" (assignment_expression "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 8) * 4" identifier + (binary_expression "*(int *)(iVar17 + 8) * 4" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;)) (expression_statement "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);" (assignment_expression "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x14) * 4" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);" (assignment_expression "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x20) * 4" (pointer_expression "*(int *)(iVar17 + 0x20)" * (cast_expression "(int *)(iVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar17 + 0x34) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x34) == 0" (pointer_expression "*(int *)(iVar17 + 0x34)" * (cast_expression "(int *)(iVar17 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x34)" ( (binary_expression "iVar17 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" else (compound_statement "{\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" { (expression_statement "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" * (cast_expression "(int *)(iVar17 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) }))) }) (else_clause "else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" else (compound_statement "{\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" { (expression_statement "iVar17 = param_1[0xb4];" (assignment_expression "iVar17 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (if_statement "if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;" if (parenthesized_expression "((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)))" ( (binary_expression "(*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (parenthesized_expression "(*(int *)(iVar17 + 0x34) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x34) == 0" (pointer_expression "*(int *)(iVar17 + 0x34)" * (cast_expression "(int *)(iVar17 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x34)" ( (binary_expression "iVar17 + 0x34" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (comma_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" * (cast_expression "(int *)(iVar17 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) , (binary_expression "fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier == (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) )))))) ))) )) (goto_statement "goto LAB_0016cdf8;" goto statement_identifier ;)) (expression_statement "dVar33 = (double)fVar36 * dVar34;" (assignment_expression "dVar33 = (double)fVar36 * dVar34" identifier = (binary_expression "(double)fVar36 * dVar34" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;" (assignment_expression "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33" identifier = (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 8) * 4" identifier + (binary_expression "*(int *)(iVar17 + 8) * 4" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;" (assignment_expression "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33" identifier = (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x14) * 4" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;" (assignment_expression "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33" identifier = (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x20) * 4" (pointer_expression "*(int *)(iVar17 + 0x20)" * (cast_expression "(int *)(iVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" * (cast_expression "(int *)(iVar17 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar48 = (double)fVar36;" (assignment_expression "dVar48 = (double)fVar36" identifier = (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }" { (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x2a0)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x2a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x2a0)" ( (binary_expression "PTR_UINT_003f98e4 + 0x2a0" identifier + number_literal) )))))) ;) (expression_statement "pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20)" identifier = (cast_expression "(double *)(iVar5 + (iVar14 - iVar11) * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + (iVar14 - iVar11) * 0x20)" ( (binary_expression "iVar5 + (iVar14 - iVar11) * 0x20" identifier + (binary_expression "(iVar14 - iVar11) * 0x20" (parenthesized_expression "(iVar14 - iVar11)" ( (binary_expression "iVar14 - iVar11" identifier - identifier) )) * number_literal)) )))) ;) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" identifier = (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" identifier * (pointer_expression "*pdVar7" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" identifier = (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" identifier * (subscript_expression "pdVar7[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" identifier = (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" identifier * (subscript_expression "pdVar7[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" { (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" identifier = (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" identifier * (subscript_expression "pdVar7[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) })) (if_statement "if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }" if (parenthesized_expression "(0 < (int)uVar27)" ( (binary_expression "0 < (int)uVar27" number_literal < (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }" { (if_statement "if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }" if (parenthesized_expression "(iVar25 < param_1[6] + -1)" ( (binary_expression "iVar25 < param_1[6] + -1" identifier < (binary_expression "param_1[6] + -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) )) (compound_statement "{\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }" { (expression_statement "pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20)" identifier = (cast_expression "(double *)(iVar26 + (iVar11 + iVar14) * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + (iVar11 + iVar14) * 0x20)" ( (binary_expression "iVar26 + (iVar11 + iVar14) * 0x20" identifier + (binary_expression "(iVar11 + iVar14) * 0x20" (parenthesized_expression "(iVar11 + iVar14)" ( (binary_expression "iVar11 + iVar14" identifier + identifier) )) * number_literal)) )))) ;) (expression_statement "dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *pdVar7 * dVar44 + dVar40;" (assignment_expression "dVar40 = *pdVar7 * dVar44 + dVar40" identifier = (binary_expression "*pdVar7 * dVar44 + dVar40" (binary_expression "*pdVar7 * dVar44" (pointer_expression "*pdVar7" * identifier) * identifier) + identifier)) ;) (expression_statement "dVar37 = pdVar7[1] * dVar44 + dVar37;" (assignment_expression "dVar37 = pdVar7[1] * dVar44 + dVar37" identifier = (binary_expression "pdVar7[1] * dVar44 + dVar37" (binary_expression "pdVar7[1] * dVar44" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) * identifier) + identifier)) ;) (expression_statement "dVar33 = pdVar7[2] * dVar44 + dVar33;" (assignment_expression "dVar33 = pdVar7[2] * dVar44 + dVar33" identifier = (binary_expression "pdVar7[2] * dVar44 + dVar33" (binary_expression "pdVar7[2] * dVar44" (subscript_expression "pdVar7[2]" identifier [ number_literal ]) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }" { (expression_statement "dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;" (assignment_expression "dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48" identifier = (binary_expression "pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48" (binary_expression "pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (subscript_expression "pdVar7[3]" identifier [ number_literal ]) * (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) + identifier)) ;) })) })) (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xc88)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xc88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0xc88)" ( (binary_expression "PTR_UINT_003f98e4 + -0xc88" identifier + number_literal) )))))) ;) (expression_statement "pdVar7 = (double *)(iVar26 + iVar14 * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + iVar14 * 0x20)" identifier = (cast_expression "(double *)(iVar26 + iVar14 * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + iVar14 * 0x20)" ( (binary_expression "iVar26 + iVar14 * 0x20" identifier + (binary_expression "iVar14 * 0x20" identifier * number_literal)) )))) ;) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" identifier = (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" identifier * (pointer_expression "*pdVar7" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" identifier = (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" identifier * (subscript_expression "pdVar7[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" identifier = (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" identifier * (subscript_expression "pdVar7[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" { (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" identifier = (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" identifier * (subscript_expression "pdVar7[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) (if_statement "if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }" { (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xcc0)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xcc0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0xcc0)" ( (binary_expression "PTR_UINT_003f98e4 + -0xcc0" identifier + number_literal) )))))) ;) (expression_statement "pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20)" identifier = (cast_expression "(double *)(iVar26 + (iVar14 - iVar11) * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + (iVar14 - iVar11) * 0x20)" ( (binary_expression "iVar26 + (iVar14 - iVar11) * 0x20" identifier + (binary_expression "(iVar14 - iVar11) * 0x20" (parenthesized_expression "(iVar14 - iVar11)" ( (binary_expression "iVar14 - iVar11" identifier - identifier) )) * number_literal)) )))) ;) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" identifier = (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" identifier * (pointer_expression "*pdVar7" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" identifier = (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" identifier * (subscript_expression "pdVar7[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" identifier = (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" identifier * (subscript_expression "pdVar7[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }" { (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" identifier = (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" identifier * (subscript_expression "pdVar7[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) })) })) (if_statement "if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar40 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar40 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar36 = (float)dVar40;\n                }" { (expression_statement "fVar36 = (float)dVar40;" (assignment_expression "fVar36 = (float)dVar40" identifier = (cast_expression "(float)dVar40" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar36 = 0.0;\n              }" else (compound_statement "{\n                fVar36 = 0.0;\n              }" { (expression_statement "fVar36 = 0.0;" (assignment_expression "fVar36 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar40 = (double)fVar36;" (assignment_expression "dVar40 = (double)fVar36" identifier = (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar37)" ( (binary_expression "0.0 <= dVar37" number_literal <= identifier) )) (compound_statement "{\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar37 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar37 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar39 = (float)dVar37;\n                }" { (expression_statement "fVar39 = (float)dVar37;" (assignment_expression "fVar39 = (float)dVar37" identifier = (cast_expression "(float)dVar37" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar39 = 0.0;\n              }" else (compound_statement "{\n                fVar39 = 0.0;\n              }" { (expression_statement "fVar39 = 0.0;" (assignment_expression "fVar39 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar37 = (double)fVar39;" (assignment_expression "dVar37 = (double)fVar39" identifier = (cast_expression "(double)fVar39" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar33)" ( (binary_expression "0.0 <= dVar33" number_literal <= identifier) )) (compound_statement "{\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar33 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar33 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar35 = (float)dVar33;\n                }" { (expression_statement "fVar35 = (float)dVar33;" (assignment_expression "fVar35 = (float)dVar33" identifier = (cast_expression "(float)dVar33" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar35 = 0.0;\n              }" else (compound_statement "{\n                fVar35 = 0.0;\n              }" { (expression_statement "fVar35 = 0.0;" (assignment_expression "fVar35 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar33 = (double)fVar35;" (assignment_expression "dVar33 = (double)fVar35" identifier = (cast_expression "(double)fVar35" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }" { (if_statement "if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }" if (parenthesized_expression "(0.0 <= dVar48)" ( (binary_expression "0.0 <= dVar48" number_literal <= identifier) )) (compound_statement "{\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }" { (if_statement "if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" if (parenthesized_expression "(dVar48 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar48 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                    fVar42 = (float)dVar48;\n                  }" { (expression_statement "fVar42 = (float)dVar48;" (assignment_expression "fVar42 = (float)dVar48" identifier = (cast_expression "(float)dVar48" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" else (compound_statement "{\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" { (expression_statement "fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                  fVar42 = 0.0;\n                }" else (compound_statement "{\n                  fVar42 = 0.0;\n                }" { (expression_statement "fVar42 = 0.0;" (assignment_expression "fVar42 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar48 = (double)fVar42;" (assignment_expression "dVar48 = (double)fVar42" identifier = (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier)) ;) })) (if_statement "if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar36)" ( (binary_expression "0.0 <= fVar36" number_literal <= identifier) )) (compound_statement "{\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }" if (parenthesized_expression "(fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar36))" ( (call_expression "NAN(fVar36)" identifier (argument_list "(fVar36)" ( identifier ))) )) (compound_statement "{\n                    uVar12 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" else (if_statement "if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }" { (expression_statement "dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar12 = (int)dVar44 & 0xff;" (assignment_expression "uVar12 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar12 = 0xff;\n                    }" else (compound_statement "{\n                      uVar12 = 0xff;\n                    }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar12 = 0;\n                  }" else (compound_statement "{\n                    uVar12 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))))) })) }) (else_clause "else {\n                uVar12 = 0;\n              }" else (compound_statement "{\n                uVar12 = 0;\n              }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar39)" ( (binary_expression "0.0 <= fVar39" number_literal <= identifier) )) (compound_statement "{\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }" { (if_statement "if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }" if (parenthesized_expression "(fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar39))" ( (call_expression "NAN(fVar39)" identifier (argument_list "(fVar39)" ( identifier ))) )) (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" else (if_statement "if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar39)" ( (binary_expression "0.0 < fVar39" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar39" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }" { (expression_statement "dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar39" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar8 = (int)dVar44 & 0xff;" (assignment_expression "uVar8 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar8 = 0xff;\n                    }" else (compound_statement "{\n                      uVar8 = 0xff;\n                    }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar8 = 0;\n                  }" else (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                  uVar8 = 0xff;\n                }" else (compound_statement "{\n                  uVar8 = 0xff;\n                }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                uVar8 = 0;\n              }" else (compound_statement "{\n                uVar8 = 0;\n              }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar35)" ( (binary_expression "0.0 <= fVar35" number_literal <= identifier) )) (compound_statement "{\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }" { (if_statement "if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }" if (parenthesized_expression "(fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar35))" ( (call_expression "NAN(fVar35)" identifier (argument_list "(fVar35)" ( identifier ))) )) (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" else (if_statement "if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar35)" ( (binary_expression "0.0 < fVar35" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar35" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }" { (expression_statement "dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar35" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar44 & 0xff;" (assignment_expression "uVar13 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar13 = 0xff;\n                    }" else (compound_statement "{\n                      uVar13 = 0xff;\n                    }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar13 = 0;\n                  }" else (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                  uVar13 = 0xff;\n                }" else (compound_statement "{\n                  uVar13 = 0xff;\n                }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                uVar13 = 0;\n              }" else (compound_statement "{\n                uVar13 = 0;\n              }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;" (assignment_expression "uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2" identifier = (binary_expression "(uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2" (binary_expression "(uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6" (binary_expression "(uVar13 >> 2) << 0xc" (parenthesized_expression "(uVar13 >> 2)" ( (binary_expression "uVar13 >> 2" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar8 >> 2) << 6" (parenthesized_expression "(uVar8 >> 2)" ( (binary_expression "uVar8 >> 2" identifier >> number_literal) )) << number_literal)) | (binary_expression "uVar12 >> 2" identifier >> number_literal))) ;) (if_statement "if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }" { (if_statement "if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }" if (parenthesized_expression "(0.0 <= dVar48)" ( (binary_expression "0.0 <= dVar48" number_literal <= identifier) )) (compound_statement "{\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }" { (if_statement "if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }" if (parenthesized_expression "(dVar48 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar48 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }" { (expression_statement "fVar42 = (float)dVar48;" (assignment_expression "fVar42 = (float)dVar48" identifier = (cast_expression "(float)dVar48" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\n                      uVar8 = 0;\n                    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" else (if_statement "if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }" { (if_statement "if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }" if (parenthesized_expression "((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }" { (expression_statement "dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar8 = (int)dVar44 & 0xff;" (assignment_expression "uVar8 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                        uVar8 = 0xff;\n                      }" else (compound_statement "{\n                        uVar8 = 0xff;\n                      }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      uVar8 = 0;\n                    }" else (compound_statement "{\n                      uVar8 = 0;\n                    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                    uVar8 = 0xff;\n                  }" else (compound_statement "{\n                    uVar8 = 0xff;\n                  }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                  uVar8 = 0;\n                }" else (compound_statement "{\n                  uVar8 = 0;\n                }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar12 = uVar12 | (uVar8 >> 2) << 0x12;" (assignment_expression "uVar12 = uVar12 | (uVar8 >> 2) << 0x12" identifier = (binary_expression "uVar12 | (uVar8 >> 2) << 0x12" identifier | (binary_expression "(uVar8 >> 2) << 0x12" (parenthesized_expression "(uVar8 >> 2)" ( (binary_expression "uVar8 >> 2" identifier >> number_literal) )) << number_literal))) ;) })) (expression_statement "iVar16 = uVar12 * 4;" (assignment_expression "iVar16 = uVar12 * 4" identifier = (binary_expression "uVar12 * 4" identifier * number_literal)) ;) (if_statement "if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }" if (parenthesized_expression "(*(int *)(local_310 + iVar16) < 0)" ( (binary_expression "*(int *)(local_310 + iVar16) < 0" (pointer_expression "*(int *)(local_310 + iVar16)" * (cast_expression "(int *)(local_310 + iVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_310 + iVar16)" ( (binary_expression "local_310 + iVar16" identifier + identifier) )))) < number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }" { (expression_statement "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "fVar42 = fVar36;" (assignment_expression "fVar42 = fVar36" identifier = identifier) ;) (if_statement "if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }" if (parenthesized_expression "(fVar43 <= fVar36)" ( (binary_expression "fVar43 <= fVar36" identifier <= identifier) )) (compound_statement "{\n                  fVar42 = fVar43;\n                }" { (expression_statement "fVar42 = fVar43;" (assignment_expression "fVar42 = fVar43" identifier = identifier) ;) })) (expression_statement "fVar47 = fVar39;" (assignment_expression "fVar47 = fVar39" identifier = identifier) ;) (if_statement "if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }" if (parenthesized_expression "(fVar43 <= fVar39)" ( (binary_expression "fVar43 <= fVar39" identifier <= identifier) )) (compound_statement "{\n                  fVar47 = fVar43;\n                }" { (expression_statement "fVar47 = fVar43;" (assignment_expression "fVar47 = fVar43" identifier = identifier) ;) })) (if_statement "if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }" if (parenthesized_expression "(fVar35 < fVar43)" ( (binary_expression "fVar35 < fVar43" identifier < identifier) )) (compound_statement "{\n                  fVar43 = fVar35;\n                }" { (expression_statement "fVar43 = fVar35;" (assignment_expression "fVar43 = fVar35" identifier = identifier) ;) })) (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (expression_statement "dVar44 = *(double *)(puVar3 + -0x2a80);" (assignment_expression "dVar44 = *(double *)(puVar3 + -0x2a80)" identifier = (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);" (assignment_expression "dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78)" identifier = (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = local_378[0];" (assignment_expression "puVar20 = local_378[0]" identifier = (subscript_expression "local_378[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));" do (compound_statement "{\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" if (parenthesized_expression "((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36))))" ( (binary_expression "(0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))" (parenthesized_expression "(0.0 <= fVar36)" ( (binary_expression "0.0 <= fVar36" number_literal <= identifier) )) && (parenthesized_expression "((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))" ( (parenthesized_expression "(*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36))" ( (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)" (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36" (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) )))) <= identifier) || (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) ))) )) ))) )) (compound_statement "{\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar42 / dVar44 < dVar46)" ( (binary_expression "(double)fVar42 / dVar44 < dVar46" (binary_expression "(double)fVar42 / dVar44" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }" { (expression_statement "dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar42 / dVar44" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar8 = (int)dVar38 & 0xff;" (assignment_expression "uVar8 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar8 = 0xff;\n                    }" else (compound_statement "{\n                      uVar8 = 0xff;\n                    }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) })) (if_statement "if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(0.0 <= fVar39)" ( (binary_expression "0.0 <= fVar39" number_literal <= identifier) )) (compound_statement "{\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }" { (if_statement "if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" if (parenthesized_expression "(fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }" { (if_statement "if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" if (parenthesized_expression "(NAN(fVar39))" ( (call_expression "NAN(fVar39)" identifier (argument_list "(fVar39)" ( identifier ))) )) (compound_statement "{\n                        uVar13 = 0;\n                      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" else (compound_statement "{\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar39) goto LAB_0016d63c;" if (parenthesized_expression "(0.0 < fVar39)" ( (binary_expression "0.0 < fVar39" number_literal < identifier) )) (goto_statement "goto LAB_0016d63c;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" else (compound_statement "{\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" { (labeled_statement "LAB_0016d63c:\n                      uVar13 = 0xff;" statement_identifier : (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;)) (if_statement "if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }" if (parenthesized_expression "((double)fVar47 / dVar44 < dVar46)" ( (binary_expression "(double)fVar47 / dVar44 < dVar46" (binary_expression "(double)fVar47 / dVar44" (cast_expression "(double)fVar47" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }" { (expression_statement "dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar47 / dVar44" (cast_expression "(double)fVar47" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar38 & 0xff;" (assignment_expression "uVar13 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) })) }))) }) (else_clause "else {\n                    uVar13 = 0;\n                  }" else (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }" if (parenthesized_expression "(0.0 <= fVar35)" ( (binary_expression "0.0 <= fVar35" number_literal <= identifier) )) (compound_statement "{\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }" { (if_statement "if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" if (parenthesized_expression "(fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }" { (if_statement "if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" if (parenthesized_expression "(NAN(fVar35))" ( (call_expression "NAN(fVar35)" identifier (argument_list "(fVar35)" ( identifier ))) )) (compound_statement "{\n                        uVar9 = 0;\n                      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" else (compound_statement "{\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" { (if_statement "if (0.0 < fVar35) goto LAB_0016d6f4;" if (parenthesized_expression "(0.0 < fVar35)" ( (binary_expression "0.0 < fVar35" number_literal < identifier) )) (goto_statement "goto LAB_0016d6f4;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" else (compound_statement "{\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" { (labeled_statement "LAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }" statement_identifier : (if_statement "if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }" if (parenthesized_expression "((double)fVar43 / dVar44 < dVar46)" ( (binary_expression "(double)fVar43 / dVar44 < dVar46" (binary_expression "(double)fVar43 / dVar44" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }" { (expression_statement "dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar43 / dVar44" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar9 = (int)dVar38 & 0xff;" (assignment_expression "uVar9 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                        uVar9 = 0xff;\n                      }" else (compound_statement "{\n                        uVar9 = 0xff;\n                      }" { (expression_statement "uVar9 = 0xff;" (assignment_expression "uVar9 = 0xff" identifier = number_literal) ;) })))) }))) }) (else_clause "else {\n                    uVar9 = 0;\n                  }" else (compound_statement "{\n                    uVar9 = 0;\n                  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;" (assignment_expression "uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U" identifier = (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U" (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1" (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2" (parenthesized_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U)" ( (binary_expression "(int)uVar9 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar9 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal) | (binary_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1" (parenthesized_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U)" ( (binary_expression "(int)uVar13 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal)) | (binary_expression "(int)uVar8 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar8 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal))) ;) (if_statement "if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }" { (if_statement "if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }" if (parenthesized_expression "(0.0 <= dVar48)" ( (binary_expression "0.0 <= dVar48" number_literal <= identifier) )) (compound_statement "{\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }" { (if_statement "if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }" if (parenthesized_expression "(dVar48 < dVar31)" ( (binary_expression "dVar48 < dVar31" identifier < identifier) )) (compound_statement "{\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }" { (expression_statement "fVar45 = (float)dVar48;" (assignment_expression "fVar45 = (float)dVar48" identifier = (cast_expression "(float)dVar48" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" if (parenthesized_expression "(NAN(fVar45))" ( (call_expression "NAN(fVar45)" identifier (argument_list "(fVar45)" ( identifier ))) )) (compound_statement "{\n                          uVar13 = 0;\n                        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" else (if_statement "if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" if (parenthesized_expression "(0.0 < fVar45)" ( (binary_expression "0.0 < fVar45" number_literal < identifier) )) (compound_statement "{\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }" { (if_statement "if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }" if (parenthesized_expression "((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar45 / dVar32" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }" { (expression_statement "dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar45 / dVar32" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar38 & 0xff;" (assignment_expression "uVar13 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                            uVar13 = 0xff;\n                          }" else (compound_statement "{\n                            uVar13 = 0xff;\n                          }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                          uVar13 = 0;\n                        }" else (compound_statement "{\n                          uVar13 = 0;\n                        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                        uVar13 = 0xff;\n                      }" else (compound_statement "{\n                        uVar13 = 0xff;\n                      }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      uVar13 = 0;\n                    }" else (compound_statement "{\n                      uVar13 = 0;\n                    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;" (assignment_expression "uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" identifier = (binary_expression "uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" identifier | (binary_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" (parenthesized_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U)" ( (binary_expression "(int)uVar13 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal))) ;) })) (expression_statement "puVar10 = (undefined4 *)puVar20[uVar8 + 1];" (assignment_expression "puVar10 = (undefined4 *)puVar20[uVar8 + 1]" identifier = (cast_expression "(undefined4 *)puVar20[uVar8 + 1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[uVar8 + 1]" identifier [ (binary_expression "uVar8 + 1" identifier + number_literal) ]))) ;) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0))" ( (binary_expression "(puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0)" (parenthesized_expression "(puVar10 != (undefined4 *)0x0)" ( (binary_expression "puVar10 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar20 = puVar10, uVar12 != 0)" ( (comma_expression "puVar20 = puVar10, uVar12 != 0" (assignment_expression "puVar20 = puVar10" identifier = identifier) , (binary_expression "uVar12 != 0" identifier != number_literal)) ))) )) ;) (expression_statement "local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);" (assignment_expression "local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" identifier = (pointer_expression "*(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" * (cast_expression "(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88" identifier + number_literal) ))))) ;) (expression_statement "local_360 = dVar40;" (assignment_expression "local_360 = dVar40" identifier = identifier) ;) (expression_statement "local_358 = dVar37;" (assignment_expression "local_358 = dVar37" identifier = identifier) ;) (expression_statement "local_350 = dVar33;" (assignment_expression "local_350 = dVar33" identifier = identifier) ;) (expression_statement "local_348 = dVar48;" (assignment_expression "local_348 = dVar48" identifier = identifier) ;) (expression_statement "FUN_00165e20(param_1,local_378,*puVar20);" (call_expression "FUN_00165e20(param_1,local_378,*puVar20)" identifier (argument_list "(param_1,local_378,*puVar20)" ( identifier , identifier , (pointer_expression "*puVar20" * identifier) ))) ;) (expression_statement "*(undefined4 *)(local_310 + iVar16) = local_320;" (assignment_expression "*(undefined4 *)(local_310 + iVar16) = local_320" (pointer_expression "*(undefined4 *)(local_310 + iVar16)" * (cast_expression "(undefined4 *)(local_310 + iVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_310 + iVar16)" ( (binary_expression "local_310 + iVar16" identifier + identifier) )))) = identifier) ;) })) (expression_statement "iVar16 = *(int *)(local_310 + iVar16);" (assignment_expression "iVar16 = *(int *)(local_310 + iVar16)" identifier = (pointer_expression "*(int *)(local_310 + iVar16)" * (cast_expression "(int *)(local_310 + iVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_310 + iVar16)" ( (binary_expression "local_310 + iVar16" identifier + identifier) ))))) ;) (if_statement "if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }" if (parenthesized_expression "((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0))" ( (binary_expression "(*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)" (parenthesized_expression "(*param_1 == 2)" ( (binary_expression "*param_1 == 2" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(param_1[0xb4] + 0x40) != 0)" ( (binary_expression "*(int *)(param_1[0xb4] + 0x40) != 0" (pointer_expression "*(int *)(param_1[0xb4] + 0x40)" * (cast_expression "(int *)(param_1[0xb4] + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x40)" ( (binary_expression "param_1[0xb4] + 0x40" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }" { (expression_statement "dVar44 = (double)iVar16;" (assignment_expression "dVar44 = (double)iVar16" identifier = (cast_expression "(double)iVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(param_1[0xb4] + 0x44) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x44)" * (cast_expression "(int *)(param_1[0xb4] + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x44)" ( (binary_expression "param_1[0xb4] + 0x44" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dVar44" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }" if (parenthesized_expression "(*(int *)(local_88 + 0x10) == 0)" ( (binary_expression "*(int *)(local_88 + 0x10) == 0" (pointer_expression "*(int *)(local_88 + 0x10)" * (cast_expression "(int *)(local_88 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x10)" ( (binary_expression "local_88 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }" { (expression_statement "iVar17 = iVar16 * 0x58;" (assignment_expression "iVar17 = iVar16 * 0x58" identifier = (binary_expression "iVar16 * 0x58" identifier * number_literal)) ;) (expression_statement "iVar19 = param_1[0xb4];" (assignment_expression "iVar19 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(iVar19 + 8) * 4" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x28)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x28)" ( (binary_expression "param_1[10] + iVar17 + 0x28" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(iVar19 + 0x14) * 4" (pointer_expression "*(int *)(iVar19 + 0x14)" * (cast_expression "(int *)(iVar19 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x14)" ( (binary_expression "iVar19 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x30)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x30)" ( (binary_expression "param_1[10] + iVar17 + 0x30" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(param_1[0xb4] + 0x20) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x20)" * (cast_expression "(int *)(param_1[0xb4] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x20)" ( (binary_expression "param_1[0xb4] + 0x20" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x38)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x38)" ( (binary_expression "param_1[10] + iVar17 + 0x38" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) (if_statement "if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }" if (parenthesized_expression "((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0))" ( (binary_expression "(local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)" (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(param_1[0xb4] + 0x34) != 0)" ( (binary_expression "*(int *)(param_1[0xb4] + 0x34) != 0" (pointer_expression "*(int *)(param_1[0xb4] + 0x34)" * (cast_expression "(int *)(param_1[0xb4] + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x34)" ( (binary_expression "param_1[0xb4] + 0x34" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }" { (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 +\n                            iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(param_1[0xb4] + 0x38) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x38)" * (cast_expression "(int *)(param_1[0xb4] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x38)" ( (binary_expression "param_1[0xb4] + 0x38" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x48)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x48)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x48)" ( (binary_expression "param_1[10] + iVar17 + 0x48" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) })) })) (expression_statement "iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);" (assignment_expression "iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n                bVar1 = false;\n              }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar1 = false;\n              }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (expression_statement "iVar16 = iVar16 * 0x58 + param_1[10];" (assignment_expression "iVar16 = iVar16 * 0x58 + param_1[10]" identifier = (binary_expression "iVar16 * 0x58 + param_1[10]" (binary_expression "iVar16 * 0x58" identifier * number_literal) + (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (if_statement "if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" if (parenthesized_expression "((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48)))" ( (binary_expression "(local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))" (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) || (parenthesized_expression "(dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))" ( (comma_expression "dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48)" (assignment_expression "dVar44 = *(double *)(iVar16 + 0x48)" identifier = (pointer_expression "*(double *)(iVar16 + 0x48)" * (cast_expression "(double *)(iVar16 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x48)" ( (binary_expression "iVar16 + 0x48" identifier + number_literal) ))))) , (binary_expression "dVar44 == *(double *)(puVar28 + 0x4a48)" identifier == (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }" { (expression_statement "dVar41 = *(double *)(iVar16 + 0x28);" (assignment_expression "dVar41 = *(double *)(iVar16 + 0x28)" identifier = (pointer_expression "*(double *)(iVar16 + 0x28)" * (cast_expression "(double *)(iVar16 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x28)" ( (binary_expression "iVar16 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(iVar16 + 0x30);" (assignment_expression "dVar38 = *(double *)(iVar16 + 0x30)" identifier = (pointer_expression "*(double *)(iVar16 + 0x30)" * (cast_expression "(double *)(iVar16 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x30)" ( (binary_expression "iVar16 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(iVar16 + 0x38);" (assignment_expression "dVar46 = *(double *)(iVar16 + 0x38)" identifier = (pointer_expression "*(double *)(iVar16 + 0x38)" * (cast_expression "(double *)(iVar16 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x38)" ( (binary_expression "iVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(iVar16 + 0x48);" (assignment_expression "dVar44 = *(double *)(iVar16 + 0x48)" identifier = (pointer_expression "*(double *)(iVar16 + 0x48)" * (cast_expression "(double *)(iVar16 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x48)" ( (binary_expression "iVar16 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" else (compound_statement "{\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" { (expression_statement "dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);" (assignment_expression "dVar46 = dVar44 * *(double *)(puVar2 + 0x4410)" identifier = (binary_expression "dVar44 * *(double *)(puVar2 + 0x4410)" identifier * (pointer_expression "*(double *)(puVar2 + 0x4410)" * (cast_expression "(double *)(puVar2 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4410)" ( (binary_expression "puVar2 + 0x4410" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dVar46 * *(double *)(iVar16 + 0x28);" (assignment_expression "dVar41 = dVar46 * *(double *)(iVar16 + 0x28)" identifier = (binary_expression "dVar46 * *(double *)(iVar16 + 0x28)" identifier * (pointer_expression "*(double *)(iVar16 + 0x28)" * (cast_expression "(double *)(iVar16 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x28)" ( (binary_expression "iVar16 + 0x28" identifier + number_literal) )))))) ;) (expression_statement "dVar38 = dVar46 * *(double *)(iVar16 + 0x30);" (assignment_expression "dVar38 = dVar46 * *(double *)(iVar16 + 0x30)" identifier = (binary_expression "dVar46 * *(double *)(iVar16 + 0x30)" identifier * (pointer_expression "*(double *)(iVar16 + 0x30)" * (cast_expression "(double *)(iVar16 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x30)" ( (binary_expression "iVar16 + 0x30" identifier + number_literal) )))))) ;) (expression_statement "dVar46 = dVar46 * *(double *)(iVar16 + 0x38);" (assignment_expression "dVar46 = dVar46 * *(double *)(iVar16 + 0x38)" identifier = (binary_expression "dVar46 * *(double *)(iVar16 + 0x38)" identifier * (pointer_expression "*(double *)(iVar16 + 0x38)" * (cast_expression "(double *)(iVar16 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x38)" ( (binary_expression "iVar16 + 0x38" identifier + number_literal) )))))) ;) }))) (expression_statement "pdVar7 = (double *)(iVar5 + iVar14 * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar5 + iVar14 * 0x20)" identifier = (cast_expression "(double *)(iVar5 + iVar14 * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar14 * 0x20)" ( (binary_expression "iVar5 + iVar14 * 0x20" identifier + (binary_expression "iVar14 * 0x20" identifier * number_literal)) )))) ;) (expression_statement "*pdVar7 = dVar40 - dVar41;" (assignment_expression "*pdVar7 = dVar40 - dVar41" (pointer_expression "*pdVar7" * identifier) = (binary_expression "dVar40 - dVar41" identifier - identifier)) ;) (expression_statement "pdVar7[1] = dVar37 - dVar38;" (assignment_expression "pdVar7[1] = dVar37 - dVar38" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) = (binary_expression "dVar37 - dVar38" identifier - identifier)) ;) (expression_statement "pdVar7[2] = dVar33 - dVar46;" (assignment_expression "pdVar7[2] = dVar33 - dVar46" (subscript_expression "pdVar7[2]" identifier [ number_literal ]) = (binary_expression "dVar33 - dVar46" identifier - identifier)) ;) (if_statement "if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                pdVar7[3] = dVar48 - dVar44;\n              }" { (expression_statement "pdVar7[3] = dVar48 - dVar44;" (assignment_expression "pdVar7[3] = dVar48 - dVar44" (subscript_expression "pdVar7[3]" identifier [ number_literal ]) = (binary_expression "dVar48 - dVar44" identifier - identifier)) ;) })) (if_statement "if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }" if (parenthesized_expression "((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0))" ( (binary_expression "(param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)" (parenthesized_expression "(param_1[0xca] != 0)" ( (binary_expression "param_1[0xca] != 0" (subscript_expression "param_1[0xca]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)" ( (comma_expression "iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0" (assignment_expression "iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" * (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" ( identifier , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc" identifier + number_literal) , (binary_expression "(int)uVar27 >> 0x1f" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , identifier , number_literal , (subscript_expression "param_1[7]" identifier [ number_literal ]) )))) , (binary_expression "iVar16 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                bVar1 = false;\n              }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = param_1[6];" (assignment_expression "iVar16 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(iVar25 < iVar16)" ( (binary_expression "iVar25 < iVar16" identifier < identifier) )) ;) })) }) (else_clause "else {\n          bVar1 = false;\n        }" else (compound_statement "{\n          bVar1 = false;\n        }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }))) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar27 < param_1[7])" ( (binary_expression "(int)uVar27 < param_1[7]" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);" (call_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003f9f0c" * (cast_expression "(code *)PTR_DestroyCacheView_003f9f0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "FUN_00166940(local_390);" (call_expression "FUN_00166940(local_390)" identifier (argument_list "(local_390)" ( identifier ))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "iVar26 = local_5c;" (assignment_expression "iVar26 = local_5c" identifier = identifier) ;) (expression_statement "puVar28 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003fa07c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" * (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);" (call_expression "(**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c55c))" ( (pointer_expression "**(code **)(puVar28 + 0x28c55c)" * (pointer_expression "*(code **)(puVar28 + 0x28c55c)" * (cast_expression "(code **)(puVar28 + 0x28c55c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c55c)" ( (binary_expression "puVar28 + 0x28c55c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4)" ( number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ad4" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc48) + 0x10f4" (pointer_expression "*(int *)(puVar28 + 0x28bc48)" * (cast_expression "(int *)(puVar28 + 0x28bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc48)" ( (binary_expression "puVar28 + 0x28bc48" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }" { (expression_statement "(**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);" (call_expression "(**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c984))" ( (pointer_expression "**(code **)(puVar28 + 0x28c984)" * (pointer_expression "*(code **)(puVar28 + 0x28c984)" * (cast_expression "(code **)(puVar28 + 0x28c984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c984)" ( (binary_expression "puVar28 + 0x28c984" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" ( (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4d84" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" else (if_statement "if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" if (parenthesized_expression "(*(int *)(iVar26 + 0x14) == -0x54535255)" ( (binary_expression "*(int *)(iVar26 + 0x14) == -0x54535255" (pointer_expression "*(int *)(iVar26 + 0x14)" * (cast_expression "(int *)(iVar26 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x14)" ( (binary_expression "iVar26 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" { (expression_statement "*(undefined4 *)(iVar26 + 0x14) = 0x54535254;" (assignment_expression "*(undefined4 *)(iVar26 + 0x14) = 0x54535254" (pointer_expression "*(undefined4 *)(iVar26 + 0x14)" * (cast_expression "(undefined4 *)(iVar26 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x14)" ( (binary_expression "iVar26 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);" (assignment_expression "uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26)" identifier = (call_expression "(**(code **)(puVar28 + 0x28c33c))(iVar26)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c33c))" ( (pointer_expression "**(code **)(puVar28 + 0x28c33c)" * (pointer_expression "*(code **)(puVar28 + 0x28c33c)" * (cast_expression "(code **)(puVar28 + 0x28c33c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c33c)" ( (binary_expression "puVar28 + 0x28c33c" identifier + number_literal) ))))) )) (argument_list "(iVar26)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })))) (expression_statement "iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;" (assignment_expression "iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c" identifier = (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4d5c" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x28c984);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x28c984)" identifier = (pointer_expression "*(code **)(puVar28 + 0x28c984)" * (cast_expression "(code **)(puVar28 + 0x28c984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c984)" ( (binary_expression "puVar28 + 0x28c984" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);" (call_expression "(*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" ( identifier , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) ))) ;) (do_statement "do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);" do (compound_statement "{\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  }" { (expression_statement "puVar20 = *(undefined4 **)(iVar26 + 0x60);" (assignment_expression "puVar20 = *(undefined4 **)(iVar26 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar26 + 0x60)" * (cast_expression "(undefined4 **)(iVar26 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + 0x60)" ( (binary_expression "iVar26 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = puVar20[1];" (assignment_expression "iVar24 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20)" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c254))(*puVar20)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c254)" * (pointer_expression "*(code **)(pcVar29 + 0x28c254)" * (cast_expression "(code **)(pcVar29 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c254)" ( (binary_expression "pcVar29 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(*puVar20)" ( (pointer_expression "*puVar20" * identifier) )))) ;) (expression_statement "*puVar20 = uVar6;" (assignment_expression "*puVar20 = uVar6" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "(**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));" (call_expression "(**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60))" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c254)" * (pointer_expression "*(code **)(pcVar29 + 0x28c254)" * (cast_expression "(code **)(pcVar29 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c254)" ( (binary_expression "pcVar29 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar26 + 0x60))" ( (pointer_expression "*(undefined4 *)(iVar26 + 0x60)" * (cast_expression "(undefined4 *)(iVar26 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x60)" ( (binary_expression "iVar26 + 0x60" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar26 + 0x60) = iVar24;" (assignment_expression "*(int *)(iVar26 + 0x60) = iVar24" (pointer_expression "*(int *)(iVar26 + 0x60)" * (cast_expression "(int *)(iVar26 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x60)" ( (binary_expression "iVar26 + 0x60" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) ;) (if_statement "if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }" if (parenthesized_expression "(*(int *)(iVar26 + 100) != 0)" ( (binary_expression "*(int *)(iVar26 + 100) != 0" (pointer_expression "*(int *)(iVar26 + 100)" * (cast_expression "(int *)(iVar26 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 100)" ( (binary_expression "iVar26 + 100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c62c))();" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c62c))()" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c62c))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c62c))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c62c)" * (pointer_expression "*(code **)(pcVar29 + 0x28c62c)" * (cast_expression "(code **)(pcVar29 + 0x28c62c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c62c)" ( (binary_expression "pcVar29 + 0x28c62c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar26 + 100) = uVar6;" (assignment_expression "*(undefined4 *)(iVar26 + 100) = uVar6" (pointer_expression "*(undefined4 *)(iVar26 + 100)" * (cast_expression "(undefined4 *)(iVar26 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 100)" ( (binary_expression "iVar26 + 100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0))" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0))" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c724))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c724)" * (pointer_expression "*(code **)(pcVar29 + 0x28c724)" * (cast_expression "(code **)(pcVar29 + 0x28c724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c724)" ( (binary_expression "pcVar29 + 0x28c724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar26 + 0x2f0))" ( (pointer_expression "*(undefined4 *)(iVar26 + 0x2f0)" * (cast_expression "(undefined4 *)(iVar26 + 0x2f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x2f0)" ( (binary_expression "iVar26 + 0x2f0" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar26 + 0x2f0) = uVar6;" (assignment_expression "*(undefined4 *)(iVar26 + 0x2f0) = uVar6" (pointer_expression "*(undefined4 *)(iVar26 + 0x2f0)" * (cast_expression "(undefined4 *)(iVar26 + 0x2f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x2f0)" ( (binary_expression "iVar26 + 0x2f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26)" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c254))(iVar26)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c254)" * (pointer_expression "*(code **)(pcVar29 + 0x28c254)" * (cast_expression "(code **)(pcVar29 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c254)" ( (binary_expression "pcVar29 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(iVar26)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType\nFloydSteinbergDither(Image *image,CubeInfo_conflict *cube_info,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  MagickSizeType MVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  CubeInfo_conflict *pCVar5;\n  int iVar6;\n  DoublePixelPacket *pDVar7;\n  undefined4 uVar8;\n  double *pdVar9;\n  uint uVar10;\n  int iVar11;\n  PixelInfo *pPVar12;\n  uint uVar13;\n  uint uVar14;\n  NodeInfo_conflict *pNVar15;\n  NodeInfo_conflict *pNVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  CubeInfo_conflict *pCVar20;\n  CubeInfo_conflict *pCVar21;\n  MagickBooleanType MVar22;\n  int extraout_v1;\n  uint uVar23;\n  uint uVar24;\n  CubeInfo_conflict *pCVar25;\n  PixelChannelMap *pPVar26;\n  uint uVar27;\n  ssize_t sVar28;\n  size_t sVar29;\n  int iVar30;\n  int iVar31;\n  DoublePixelPacket **ppDVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  int iVar35;\n  size_t sVar36;\n  uint uVar37;\n  undefined *puVar38;\n  code *pcVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  float fVar45;\n  float fVar46;\n  double dVar44;\n  double dVar47;\n  float fVar49;\n  double dVar48;\n  double dVar50;\n  float fVar52;\n  float fVar53;\n  double dVar51;\n  double dVar54;\n  float fVar55;\n  double dVar56;\n  float fVar57;\n  double dVar58;\n  DoublePixelPacket **local_390;\n  char *q;\n  CubeInfo_conflict cube;\n  \n  iVar6 = *(int *)PTR___stack_chk_guard_003fa248;\n  sVar36 = image->columns;\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (DoublePixelPacket **)0x0) {\n    MVar22 = MagickFalse;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }\n    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);\n    puVar4 = PTR_UINT_003f98e4;\n    puVar38 = PTR_LAB_003f98e0;\n    uVar37 = 0;\n    if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);\n    DestroyPixelThreadSet(local_390);\n    MVar22 = MagickTrue;\n  }\nLAB_0016dc30:\n  if (iVar6 == *(int *)PTR___stack_chk_guard_003fa248) {\n    return MVar22;\n  }\n  puVar38 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar38 + 0x28c55c))\n            (0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4);\n  if (iVar6 == 0) {\n    (**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar6 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }\n  iVar6 = *(int *)(puVar38 + 0x28bc5c) + -0x4d5c;\n  pcVar39 = *(code **)(puVar38 + 0x28c984);\n  (*pcVar39)(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar33 = *(undefined4 **)(iVar6 + 0x60);\n    iVar34 = puVar33[1];\n    uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);\n    *puVar33 = uVar8;\n    (**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));\n    *(int *)(iVar6 + 0x60) = iVar34;\n  } while (iVar34 != 0);\n  if (*(int *)(iVar6 + 100) != 0) {\n    uVar8 = (**(code **)(pcVar39 + 0x28c62c))();\n    *(undefined4 *)(iVar6 + 100) = uVar8;\n  }\n  uVar8 = (**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0));\n  *(undefined4 *)(iVar6 + 0x2f0) = uVar8;\n  MVar22 = (**(code **)(pcVar39 + 0x28c254))(iVar6);\n  return MVar22;\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType\nFloydSteinbergDither(Image *image,CubeInfo_conflict *cube_info,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  MagickSizeType MVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  CubeInfo_conflict *pCVar5;\n  int iVar6;\n  DoublePixelPacket *pDVar7;\n  undefined4 uVar8;\n  double *pdVar9;\n  uint uVar10;\n  int iVar11;\n  PixelInfo *pPVar12;\n  uint uVar13;\n  uint uVar14;\n  NodeInfo_conflict *pNVar15;\n  NodeInfo_conflict *pNVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  CubeInfo_conflict *pCVar20;\n  CubeInfo_conflict *pCVar21;\n  MagickBooleanType MVar22;\n  int extraout_v1;\n  uint uVar23;\n  uint uVar24;\n  CubeInfo_conflict *pCVar25;\n  PixelChannelMap *pPVar26;\n  uint uVar27;\n  ssize_t sVar28;\n  size_t sVar29;\n  int iVar30;\n  int iVar31;\n  DoublePixelPacket **ppDVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  int iVar35;\n  size_t sVar36;\n  uint uVar37;\n  undefined *puVar38;\n  code *pcVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  float fVar45;\n  float fVar46;\n  double dVar44;\n  double dVar47;\n  float fVar49;\n  double dVar48;\n  double dVar50;\n  float fVar52;\n  float fVar53;\n  double dVar51;\n  double dVar54;\n  float fVar55;\n  double dVar56;\n  float fVar57;\n  double dVar58;\n  DoublePixelPacket **local_390;\n  char *q;\n  CubeInfo_conflict cube;\n  \n  iVar6 = *(int *)PTR___stack_chk_guard_003fa248;\n  sVar36 = image->columns;\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (DoublePixelPacket **)0x0) {\n    MVar22 = MagickFalse;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }\n    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);\n    puVar4 = PTR_UINT_003f98e4;\n    puVar38 = PTR_LAB_003f98e0;\n    uVar37 = 0;\n    if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);\n    DestroyPixelThreadSet(local_390);\n    MVar22 = MagickTrue;\n  }\nLAB_0016dc30:\n  if (iVar6 == *(int *)PTR___stack_chk_guard_003fa248) {\n    return MVar22;\n  }\n  puVar38 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar38 + 0x28c55c))\n            (0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4);\n  if (iVar6 == 0) {\n    (**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar6 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }\n  iVar6 = *(int *)(puVar38 + 0x28bc5c) + -0x4d5c;\n  pcVar39 = *(code **)(puVar38 + 0x28c984);\n  (*pcVar39)(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar33 = *(undefined4 **)(iVar6 + 0x60);\n    iVar34 = puVar33[1];\n    uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);\n    *puVar33 = uVar8;\n    (**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));\n    *(int *)(iVar6 + 0x60) = iVar34;\n  } while (iVar34 != 0);\n  if (*(int *)(iVar6 + 100) != 0) {\n    uVar8 = (**(code **)(pcVar39 + 0x28c62c))();\n    *(undefined4 *)(iVar6 + 100) = uVar8;\n  }\n  uVar8 = (**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0));\n  *(undefined4 *)(iVar6 + 0x2f0) = uVar8;\n  MVar22 = (**(code **)(pcVar39 + 0x28c254))(iVar6);\n  return MVar22;\n}" type_identifier (function_declarator "FloydSteinbergDither(Image *image,CubeInfo_conflict *cube_info,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,CubeInfo_conflict *cube_info,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "CubeInfo_conflict *cube_info" type_identifier (pointer_declarator "*cube_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  MagickSizeType MVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  CubeInfo_conflict *pCVar5;\n  int iVar6;\n  DoublePixelPacket *pDVar7;\n  undefined4 uVar8;\n  double *pdVar9;\n  uint uVar10;\n  int iVar11;\n  PixelInfo *pPVar12;\n  uint uVar13;\n  uint uVar14;\n  NodeInfo_conflict *pNVar15;\n  NodeInfo_conflict *pNVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  CubeInfo_conflict *pCVar20;\n  CubeInfo_conflict *pCVar21;\n  MagickBooleanType MVar22;\n  int extraout_v1;\n  uint uVar23;\n  uint uVar24;\n  CubeInfo_conflict *pCVar25;\n  PixelChannelMap *pPVar26;\n  uint uVar27;\n  ssize_t sVar28;\n  size_t sVar29;\n  int iVar30;\n  int iVar31;\n  DoublePixelPacket **ppDVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  int iVar35;\n  size_t sVar36;\n  uint uVar37;\n  undefined *puVar38;\n  code *pcVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  float fVar45;\n  float fVar46;\n  double dVar44;\n  double dVar47;\n  float fVar49;\n  double dVar48;\n  double dVar50;\n  float fVar52;\n  float fVar53;\n  double dVar51;\n  double dVar54;\n  float fVar55;\n  double dVar56;\n  float fVar57;\n  double dVar58;\n  DoublePixelPacket **local_390;\n  char *q;\n  CubeInfo_conflict cube;\n  \n  iVar6 = *(int *)PTR___stack_chk_guard_003fa248;\n  sVar36 = image->columns;\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (DoublePixelPacket **)0x0) {\n    MVar22 = MagickFalse;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }\n    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);\n    puVar4 = PTR_UINT_003f98e4;\n    puVar38 = PTR_LAB_003f98e0;\n    uVar37 = 0;\n    if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);\n    DestroyPixelThreadSet(local_390);\n    MVar22 = MagickTrue;\n  }\nLAB_0016dc30:\n  if (iVar6 == *(int *)PTR___stack_chk_guard_003fa248) {\n    return MVar22;\n  }\n  puVar38 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar38 + 0x28c55c))\n            (0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4);\n  if (iVar6 == 0) {\n    (**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar6 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }\n  iVar6 = *(int *)(puVar38 + 0x28bc5c) + -0x4d5c;\n  pcVar39 = *(code **)(puVar38 + 0x28c984);\n  (*pcVar39)(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar33 = *(undefined4 **)(iVar6 + 0x60);\n    iVar34 = puVar33[1];\n    uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);\n    *puVar33 = uVar8;\n    (**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));\n    *(int *)(iVar6 + 0x60) = iVar34;\n  } while (iVar34 != 0);\n  if (*(int *)(iVar6 + 100) != 0) {\n    uVar8 = (**(code **)(pcVar39 + 0x28c62c))();\n    *(undefined4 *)(iVar6 + 100) = uVar8;\n  }\n  uVar8 = (**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0));\n  *(undefined4 *)(iVar6 + 0x2f0) = uVar8;\n  MVar22 = (**(code **)(pcVar39 + 0x28c254))(iVar6);\n  return MVar22;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "MagickSizeType MVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "CubeInfo_conflict *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "DoublePixelPacket *pDVar7;" type_identifier (pointer_declarator "*pDVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "double *pdVar9;" primitive_type (pointer_declarator "*pdVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "PixelInfo *pPVar12;" type_identifier (pointer_declarator "*pPVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "NodeInfo_conflict *pNVar15;" type_identifier (pointer_declarator "*pNVar15" * identifier) ;) (declaration "NodeInfo_conflict *pNVar16;" type_identifier (pointer_declarator "*pNVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "CubeInfo_conflict *pCVar20;" type_identifier (pointer_declarator "*pCVar20" * identifier) ;) (declaration "CubeInfo_conflict *pCVar21;" type_identifier (pointer_declarator "*pCVar21" * identifier) ;) (declaration "MagickBooleanType MVar22;" type_identifier identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "CubeInfo_conflict *pCVar25;" type_identifier (pointer_declarator "*pCVar25" * identifier) ;) (declaration "PixelChannelMap *pPVar26;" type_identifier (pointer_declarator "*pPVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "ssize_t sVar28;" primitive_type identifier ;) (declaration "size_t sVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "DoublePixelPacket **ppDVar32;" type_identifier (pointer_declarator "**ppDVar32" * (pointer_declarator "*ppDVar32" * identifier)) ;) (declaration "undefined4 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "size_t sVar36;" primitive_type identifier ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "float fVar45;" primitive_type identifier ;) (declaration "float fVar46;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "float fVar49;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "float fVar52;" primitive_type identifier ;) (declaration "float fVar53;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "double dVar54;" primitive_type identifier ;) (declaration "float fVar55;" primitive_type identifier ;) (declaration "double dVar56;" primitive_type identifier ;) (declaration "float fVar57;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "DoublePixelPacket **local_390;" type_identifier (pointer_declarator "**local_390" * (pointer_declarator "*local_390" * identifier)) ;) (declaration "char *q;" primitive_type (pointer_declarator "*q" * identifier) ;) (declaration "CubeInfo_conflict cube;" type_identifier identifier ;) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar36 = image->columns;" (assignment_expression "sVar36 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003fa154" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003fa154" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "local_390 = (DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);" (assignment_expression "local_390 = (DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" identifier = (cast_expression "(DoublePixelPacket **)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" ( (type_descriptor "DoublePixelPacket **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(extraout_v1,4)" ( identifier , number_literal ))))) ;) (if_statement "if (local_390 == (DoublePixelPacket **)0x0) {\n    MVar22 = MagickFalse;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }\n    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);\n    puVar4 = PTR_UINT_003f98e4;\n    puVar38 = PTR_LAB_003f98e0;\n    uVar37 = 0;\n    if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);\n    DestroyPixelThreadSet(local_390);\n    MVar22 = MagickTrue;\n  }" if (parenthesized_expression "(local_390 == (DoublePixelPacket **)0x0)" ( (binary_expression "local_390 == (DoublePixelPacket **)0x0" identifier == (cast_expression "(DoublePixelPacket **)0x0" ( (type_descriptor "DoublePixelPacket **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    MVar22 = MagickFalse;\n  }" { (expression_statement "MVar22 = MagickFalse;" (assignment_expression "MVar22 = MagickFalse" identifier = identifier) ;) }) (else_clause "else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }\n    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);\n    puVar4 = PTR_UINT_003f98e4;\n    puVar38 = PTR_LAB_003f98e0;\n    uVar37 = 0;\n    if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);\n    DestroyPixelThreadSet(local_390);\n    MVar22 = MagickTrue;\n  }" else (compound_statement "{\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }\n    iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);\n    puVar4 = PTR_UINT_003f98e4;\n    puVar38 = PTR_LAB_003f98e0;\n    uVar37 = 0;\n    if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);\n    DestroyPixelThreadSet(local_390);\n    MVar22 = MagickTrue;\n  }" { (expression_statement "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);" (call_expression "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_003fa6ec)" ( (pointer_expression "*(code *)PTR_memset_003fa6ec" * (cast_expression "(code *)PTR_memset_003fa6ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_390,0,extraout_v1 << 2)" ( identifier , number_literal , (binary_expression "extraout_v1 << 2" identifier << number_literal) ))) ;) (if_statement "if (0 < extraout_v1) {\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }" if (parenthesized_expression "(0 < extraout_v1)" ( (binary_expression "0 < extraout_v1" number_literal < identifier) )) (compound_statement "{\n      iVar34 = 0;\n      ppDVar32 = local_390;\n      do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);\n    }" { (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "ppDVar32 = local_390;" (assignment_expression "ppDVar32 = local_390" identifier = identifier) ;) (do_statement "do {\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      } while (extraout_v1 != iVar34);" do (compound_statement "{\n        pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);\n        *ppDVar32 = pDVar7;\n        if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar34 = iVar34 + 1;\n        ppDVar32 = ppDVar32 + 1;\n      }" { (expression_statement "pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40);" (assignment_expression "pDVar7 = (DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40)" identifier = (cast_expression "(DoublePixelPacket *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40)" ( (type_descriptor "DoublePixelPacket *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(sVar36,0x40)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sVar36,0x40)" ( identifier , number_literal ))))) ;) (expression_statement "*ppDVar32 = pDVar7;" (assignment_expression "*ppDVar32 = pDVar7" (pointer_expression "*ppDVar32" * identifier) = identifier) ;) (if_statement "if (pDVar7 == (DoublePixelPacket *)0x0) {\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" if (parenthesized_expression "(pDVar7 == (DoublePixelPacket *)0x0)" ( (binary_expression "pDVar7 == (DoublePixelPacket *)0x0" identifier == (cast_expression "(DoublePixelPacket *)0x0" ( (type_descriptor "DoublePixelPacket *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_390 = DestroyPixelThreadSet(local_390);\n          if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" { (expression_statement "local_390 = DestroyPixelThreadSet(local_390);" (assignment_expression "local_390 = DestroyPixelThreadSet(local_390)" identifier = (call_expression "DestroyPixelThreadSet(local_390)" identifier (argument_list "(local_390)" ( identifier )))) ;) (if_statement "if (local_390 == (DoublePixelPacket **)0x0) {\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }" if (parenthesized_expression "(local_390 == (DoublePixelPacket **)0x0)" ( (binary_expression "local_390 == (DoublePixelPacket **)0x0" identifier == (cast_expression "(DoublePixelPacket **)0x0" ( (type_descriptor "DoublePixelPacket **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            MVar22 = MagickFalse;\n            goto LAB_0016dc30;\n          }" { (expression_statement "MVar22 = MagickFalse;" (assignment_expression "MVar22 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_0016dc30;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar34 = iVar34 + 1;" (assignment_expression "iVar34 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppDVar32 = ppDVar32 + 1;" (assignment_expression "ppDVar32 = ppDVar32 + 1" identifier = (binary_expression "ppDVar32 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(extraout_v1 != iVar34)" ( (binary_expression "extraout_v1 != iVar34" identifier != identifier) )) ;) })) (expression_statement "iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);" (assignment_expression "iVar34 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" identifier = (call_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" (parenthesized_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)" ( (pointer_expression "*(code *)PTR_GetImageArtifact_003fa4d8" * (cast_expression "(code *)PTR_GetImageArtifact_003fa4d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" ( identifier , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c" identifier + number_literal) )))) ;) (if_statement "if (iVar34 == 0) {\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" if (parenthesized_expression "(iVar34 == 0)" ( (binary_expression "iVar34 == 0" identifier == number_literal) )) (compound_statement "{\n      dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }" { (expression_statement "dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar40 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" else (compound_statement "{\n      dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);\n      if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" { (expression_statement "dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q);" (assignment_expression "dVar40 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q)" identifier = (cast_expression "(double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar34,&q)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)" ( (pointer_expression "*(code *)PTR_InterpretLocaleValue_003fa780" * (cast_expression "(code *)PTR_InterpretLocaleValue_003fa780" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar34,&q)" ( identifier , (pointer_expression "&q" & identifier) ))))) ;) (if_statement "if (*q == '%') {\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" if (parenthesized_expression "(*q == '%')" ( (binary_expression "*q == '%'" (pointer_expression "*q" * identifier) == (char_literal "'%'" ' character ')) )) (compound_statement "{\n        dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" { (expression_statement "dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);" (assignment_expression "dVar40 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" identifier = (binary_expression "dVar40 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a48)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a48)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a48" identifier + number_literal) )))))) ;) })) }))) (expression_statement "uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception);" (assignment_expression "uVar8 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception)" identifier = (call_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(image,exception)" (parenthesized_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)" ( (pointer_expression "*(code *)PTR_AcquireAuthenticCacheView_003f9eec" * (cast_expression "(code *)PTR_AcquireAuthenticCacheView_003f9eec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,exception)" ( identifier , identifier )))) ;) (expression_statement "puVar4 = PTR_UINT_003f98e4;" (assignment_expression "puVar4 = PTR_UINT_003f98e4" identifier = identifier) ;) (expression_statement "puVar38 = PTR_LAB_003f98e0;" (assignment_expression "puVar38 = PTR_LAB_003f98e0" identifier = identifier) ;) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)image->rows) {\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }" if (parenthesized_expression "(0 < (int)image->rows)" ( (binary_expression "0 < (int)image->rows" number_literal < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) (compound_statement "{\n      bVar1 = true;\n      dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a48" identifier + number_literal) ))))) ;) (expression_statement "dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);" (assignment_expression "dVar42 = *(double *)(PTR_UINT_003f98e4 + -0x2a80)" identifier = (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a80)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a80)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a80" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      } while ((int)uVar37 < (int)image->rows);" do (compound_statement "{\n        iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar37 = uVar37 + 1;\n      }" { (expression_statement "iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar34 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if ((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)) {\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }\n        else {\n          bVar1 = false;\n        }" if (parenthesized_expression "((bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0))" ( (binary_expression "(bVar1) &&\n           (iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0)" ( (comma_expression "iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception),\n           puVar3 = PTR_LAB_003f98e0, iVar19 != 0" (assignment_expression "iVar19 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar8,0,uVar37,image->columns,1,exception)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0,uVar37,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) , (comma_expression "puVar3 = PTR_LAB_003f98e0, iVar19 != 0" (assignment_expression "puVar3 = PTR_LAB_003f98e0" identifier = identifier) , (binary_expression "iVar19 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n          pCVar21 = cube_info;\n          pCVar5 = &cube;\n          do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);\n          MVar2 = pCVar20->transparent_pixels;\n          *(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;\n          *(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;\n          pDVar7 = local_390[iVar34];\n          sVar36 = image->columns;\n          uVar27 = uVar37 & 1;\n          iVar30 = uVar27 * sVar36 * 0x20;\n          iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;\n          iVar34 = 1;\n          if (uVar27 != 0) {\n            iVar34 = -1;\n          }\n          if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }\n        }" { (expression_statement "pCVar21 = cube_info;" (assignment_expression "pCVar21 = cube_info" identifier = identifier) ;) (expression_statement "pCVar5 = &cube;" (assignment_expression "pCVar5 = &cube" identifier = (pointer_expression "&cube" & identifier)) ;) (do_statement "do {\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          } while (pCVar21 != (CubeInfo_conflict *)&cube_info->span);" do (compound_statement "{\n            pCVar25 = pCVar5;\n            pCVar20 = pCVar21;\n            sVar29 = pCVar20->colors;\n            sVar36 = pCVar20->maximum_colors;\n            sVar28 = pCVar20->transparent_index;\n            pCVar25->root = pCVar20->root;\n            pCVar25->colors = sVar29;\n            pCVar25->maximum_colors = sVar36;\n            pCVar25->transparent_index = sVar28;\n            pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;\n            pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;\n          }" { (expression_statement "pCVar25 = pCVar5;" (assignment_expression "pCVar25 = pCVar5" identifier = identifier) ;) (expression_statement "pCVar20 = pCVar21;" (assignment_expression "pCVar20 = pCVar21" identifier = identifier) ;) (expression_statement "sVar29 = pCVar20->colors;" (assignment_expression "sVar29 = pCVar20->colors" identifier = (field_expression "pCVar20->colors" identifier -> field_identifier)) ;) (expression_statement "sVar36 = pCVar20->maximum_colors;" (assignment_expression "sVar36 = pCVar20->maximum_colors" identifier = (field_expression "pCVar20->maximum_colors" identifier -> field_identifier)) ;) (expression_statement "sVar28 = pCVar20->transparent_index;" (assignment_expression "sVar28 = pCVar20->transparent_index" identifier = (field_expression "pCVar20->transparent_index" identifier -> field_identifier)) ;) (expression_statement "pCVar25->root = pCVar20->root;" (assignment_expression "pCVar25->root = pCVar20->root" (field_expression "pCVar25->root" identifier -> field_identifier) = (field_expression "pCVar20->root" identifier -> field_identifier)) ;) (expression_statement "pCVar25->colors = sVar29;" (assignment_expression "pCVar25->colors = sVar29" (field_expression "pCVar25->colors" identifier -> field_identifier) = identifier) ;) (expression_statement "pCVar25->maximum_colors = sVar36;" (assignment_expression "pCVar25->maximum_colors = sVar36" (field_expression "pCVar25->maximum_colors" identifier -> field_identifier) = identifier) ;) (expression_statement "pCVar25->transparent_index = sVar28;" (assignment_expression "pCVar25->transparent_index = sVar28" (field_expression "pCVar25->transparent_index" identifier -> field_identifier) = identifier) ;) (expression_statement "pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels;" (assignment_expression "pCVar21 = (CubeInfo_conflict *)&pCVar20->transparent_pixels" identifier = (cast_expression "(CubeInfo_conflict *)&pCVar20->transparent_pixels" ( (type_descriptor "CubeInfo_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar20->transparent_pixels" & (field_expression "pCVar20->transparent_pixels" identifier -> field_identifier)))) ;) (expression_statement "pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels;" (assignment_expression "pCVar5 = (CubeInfo_conflict *)&pCVar25->transparent_pixels" identifier = (cast_expression "(CubeInfo_conflict *)&pCVar25->transparent_pixels" ( (type_descriptor "CubeInfo_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar25->transparent_pixels" & (field_expression "pCVar25->transparent_pixels" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pCVar21 != (CubeInfo_conflict *)&cube_info->span)" ( (binary_expression "pCVar21 != (CubeInfo_conflict *)&cube_info->span" identifier != (cast_expression "(CubeInfo_conflict *)&cube_info->span" ( (type_descriptor "CubeInfo_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cube_info->span" & (field_expression "cube_info->span" identifier -> field_identifier)))) )) ;) (expression_statement "MVar2 = pCVar20->transparent_pixels;" (assignment_expression "MVar2 = pCVar20->transparent_pixels" identifier = (field_expression "pCVar20->transparent_pixels" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21;" (assignment_expression "*(undefined4 *)&pCVar25->transparent_pixels = *(undefined4 *)pCVar21" (pointer_expression "*(undefined4 *)&pCVar25->transparent_pixels" * (cast_expression "(undefined4 *)&pCVar25->transparent_pixels" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar25->transparent_pixels" & (field_expression "pCVar25->transparent_pixels" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)pCVar21" * (cast_expression "(undefined4 *)pCVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2;" (assignment_expression "*(int *)((int)&pCVar25->transparent_pixels + 4) = (int)MVar2" (pointer_expression "*(int *)((int)&pCVar25->transparent_pixels + 4)" * (cast_expression "(int *)((int)&pCVar25->transparent_pixels + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCVar25->transparent_pixels + 4)" ( (binary_expression "(int)&pCVar25->transparent_pixels + 4" (cast_expression "(int)&pCVar25->transparent_pixels" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCVar25->transparent_pixels" & (field_expression "pCVar25->transparent_pixels" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)MVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pDVar7 = local_390[iVar34];" (assignment_expression "pDVar7 = local_390[iVar34]" identifier = (subscript_expression "local_390[iVar34]" identifier [ identifier ])) ;) (expression_statement "sVar36 = image->columns;" (assignment_expression "sVar36 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "uVar27 = uVar37 & 1;" (assignment_expression "uVar27 = uVar37 & 1" identifier = (binary_expression "uVar37 & 1" identifier & number_literal)) ;) (expression_statement "iVar30 = uVar27 * sVar36 * 0x20;" (assignment_expression "iVar30 = uVar27 * sVar36 * 0x20" identifier = (binary_expression "uVar27 * sVar36 * 0x20" (binary_expression "uVar27 * sVar36" identifier * identifier) * number_literal)) ;) (expression_statement "iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20;" (assignment_expression "iVar31 = (uVar37 + 1 & 1) * sVar36 * 0x20" identifier = (binary_expression "(uVar37 + 1 & 1) * sVar36 * 0x20" (binary_expression "(uVar37 + 1 & 1) * sVar36" (parenthesized_expression "(uVar37 + 1 & 1)" ( (binary_expression "uVar37 + 1 & 1" (binary_expression "uVar37 + 1" identifier + number_literal) & number_literal) )) * identifier) * number_literal)) ;) (expression_statement "iVar34 = 1;" (assignment_expression "iVar34 = 1" identifier = number_literal) ;) (if_statement "if (uVar27 != 0) {\n            iVar34 = -1;\n          }" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar34 = -1;\n          }" { (expression_statement "iVar34 = -1;" (assignment_expression "iVar34 = -1" identifier = number_literal) ;) })) (if_statement "if (0 < (int)sVar36) {\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }" if (parenthesized_expression "(0 < (int)sVar36)" ( (binary_expression "0 < (int)sVar36" number_literal < (cast_expression "(int)sVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar35 = 0;\n            dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);\n          }" { (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar44 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            } while (iVar35 < (int)sVar36);" do (compound_statement "{\n              iVar17 = iVar35;\n              if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }\n              iVar18 = image->number_channels * 4 * iVar17 + iVar19;\n              if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }\n              dVar58 = (double)fVar46;\n              if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }\n              if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }\n              if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }\n              dVar50 = (double)fVar46;\n              if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }\n              dVar47 = (double)fVar49;\n              if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }\n              dVar43 = (double)fVar45;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }\n              if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }\n              if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }\n              if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }\n              uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;\n              if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }\n              if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }\n              iVar18 = cube.cache[uVar23];\n              if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }\n              if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }\n              iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);\n              if (iVar11 == 0) {\n                bVar1 = false;\n              }\n              pPVar12 = image->colormap;\n              if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }\n              pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);\n              *pdVar9 = dVar50 - dVar51;\n              pdVar9[1] = dVar47 - dVar48;\n              pdVar9[2] = dVar43 - dVar56;\n              if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }\n              if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }\n              iVar35 = iVar35 + 1;\n              sVar36 = image->columns;\n            }" { (expression_statement "iVar17 = iVar35;" (assignment_expression "iVar17 = iVar35" identifier = identifier) ;) (if_statement "if (uVar27 != 0) {\n                iVar17 = (sVar36 - 1) - iVar35;\n              }" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar17 = (sVar36 - 1) - iVar35;\n              }" { (expression_statement "iVar17 = (sVar36 - 1) - iVar35;" (assignment_expression "iVar17 = (sVar36 - 1) - iVar35" identifier = (binary_expression "(sVar36 - 1) - iVar35" (parenthesized_expression "(sVar36 - 1)" ( (binary_expression "sVar36 - 1" identifier - number_literal) )) - identifier)) ;) })) (expression_statement "iVar18 = image->number_channels * 4 * iVar17 + iVar19;" (assignment_expression "iVar18 = image->number_channels * 4 * iVar17 + iVar19" identifier = (binary_expression "image->number_channels * 4 * iVar17 + iVar19" (binary_expression "image->number_channels * 4 * iVar17" (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal) * identifier) + identifier)) ;) (if_statement "if (cube.associate_alpha == MagickFalse) {\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }\n              else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }" if (parenthesized_expression "(cube.associate_alpha == MagickFalse)" ( (binary_expression "cube.associate_alpha == MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) == identifier) )) (compound_statement "{\n                pPVar26 = image->channel_map;\nLAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);\n                if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }\n              }" { (expression_statement "pPVar26 = image->channel_map;" (assignment_expression "pPVar26 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (labeled_statement "LAB_0016cdf8:\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);" statement_identifier : (expression_statement "dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4);" (assignment_expression "dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar18 + pPVar26->offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar18 + pPVar26->offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26->offset * 4)" ( (binary_expression "iVar18 + pPVar26->offset * 4" identifier + (binary_expression "pPVar26->offset * 4" (field_expression "pPVar26->offset" identifier -> field_identifier) * number_literal)) )))))) ;)) (expression_statement "dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4);" (assignment_expression "dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar18 + pPVar26[1].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar18 + pPVar26[1].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[1].offset * 4)" ( (binary_expression "iVar18 + pPVar26[1].offset * 4" identifier + (binary_expression "pPVar26[1].offset * 4" (field_expression "pPVar26[1].offset" (subscript_expression "pPVar26[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) (expression_statement "dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4);" (assignment_expression "dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar18 + pPVar26[2].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar18 + pPVar26[2].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[2].offset * 4)" ( (binary_expression "iVar18 + pPVar26[2].offset * 4" identifier + (binary_expression "pPVar26[2].offset * 4" (field_expression "pPVar26[2].offset" (subscript_expression "pPVar26[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) (if_statement "if (pPVar26[4].traits == UndefinedPixelTrait) {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }" if (parenthesized_expression "(pPVar26[4].traits == UndefinedPixelTrait)" ( (binary_expression "pPVar26[4].traits == UndefinedPixelTrait" (field_expression "pPVar26[4].traits" (subscript_expression "pPVar26[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }" else (compound_statement "{\n                  fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n                }" { (expression_statement "fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);" (assignment_expression "fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4)" identifier = (pointer_expression "*(float *)(iVar18 + pPVar26[4].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[4].offset * 4)" ( (binary_expression "iVar18 + pPVar26[4].offset * 4" identifier + (binary_expression "pPVar26[4].offset * 4" (field_expression "pPVar26[4].offset" (subscript_expression "pPVar26[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) }))) }) (else_clause "else {\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }" else (compound_statement "{\n                pPVar26 = image->channel_map;\n                if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar43 = (double)fVar46 * dVar44;\n                dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;\n                dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;\n                dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;\n                fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);\n              }" { (expression_statement "pPVar26 = image->channel_map;" (assignment_expression "pPVar26 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (if_statement "if ((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;" if (parenthesized_expression "((pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)))" ( (binary_expression "(pPVar26[4].traits == UndefinedPixelTrait) ||\n                   (fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (parenthesized_expression "(pPVar26[4].traits == UndefinedPixelTrait)" ( (binary_expression "pPVar26[4].traits == UndefinedPixelTrait" (field_expression "pPVar26[4].traits" (subscript_expression "pPVar26[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) || (parenthesized_expression "(fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (comma_expression "fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4),\n                   fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (assignment_expression "fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4)" identifier = (pointer_expression "*(float *)(iVar18 + pPVar26[4].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[4].offset * 4)" ( (binary_expression "iVar18 + pPVar26[4].offset * 4" identifier + (binary_expression "pPVar26[4].offset * 4" (field_expression "pPVar26[4].offset" (subscript_expression "pPVar26[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) , (binary_expression "fVar46 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier == (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) )))))) ))) )) (goto_statement "goto LAB_0016cdf8;" goto statement_identifier ;)) (expression_statement "dVar43 = (double)fVar46 * dVar44;" (assignment_expression "dVar43 = (double)fVar46 * dVar44" identifier = (binary_expression "(double)fVar46 * dVar44" (cast_expression "(double)fVar46" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43;" (assignment_expression "dVar50 = (double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43" identifier = (binary_expression "(double)*(float *)(iVar18 + pPVar26->offset * 4) * dVar43" (cast_expression "(double)*(float *)(iVar18 + pPVar26->offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar18 + pPVar26->offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26->offset * 4)" ( (binary_expression "iVar18 + pPVar26->offset * 4" identifier + (binary_expression "pPVar26->offset * 4" (field_expression "pPVar26->offset" identifier -> field_identifier) * number_literal)) ))))) * identifier)) ;) (expression_statement "dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43;" (assignment_expression "dVar47 = (double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43" identifier = (binary_expression "(double)*(float *)(iVar18 + pPVar26[1].offset * 4) * dVar43" (cast_expression "(double)*(float *)(iVar18 + pPVar26[1].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar18 + pPVar26[1].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[1].offset * 4)" ( (binary_expression "iVar18 + pPVar26[1].offset * 4" identifier + (binary_expression "pPVar26[1].offset * 4" (field_expression "pPVar26[1].offset" (subscript_expression "pPVar26[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) * identifier)) ;) (expression_statement "dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43;" (assignment_expression "dVar43 = (double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43" identifier = (binary_expression "(double)*(float *)(iVar18 + pPVar26[2].offset * 4) * dVar43" (cast_expression "(double)*(float *)(iVar18 + pPVar26[2].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar18 + pPVar26[2].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[2].offset * 4)" ( (binary_expression "iVar18 + pPVar26[2].offset * 4" identifier + (binary_expression "pPVar26[2].offset * 4" (field_expression "pPVar26[2].offset" (subscript_expression "pPVar26[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) * identifier)) ;) (expression_statement "fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4);" (assignment_expression "fVar46 = *(float *)(iVar18 + pPVar26[4].offset * 4)" identifier = (pointer_expression "*(float *)(iVar18 + pPVar26[4].offset * 4)" * (cast_expression "(float *)(iVar18 + pPVar26[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + pPVar26[4].offset * 4)" ( (binary_expression "iVar18 + pPVar26[4].offset * 4" identifier + (binary_expression "pPVar26[4].offset * 4" (field_expression "pPVar26[4].offset" (subscript_expression "pPVar26[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) }))) (expression_statement "dVar58 = (double)fVar46;" (assignment_expression "dVar58 = (double)fVar46" identifier = (cast_expression "(double)fVar46" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0 < iVar35) {\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }" if (parenthesized_expression "(0 < iVar35)" ( (binary_expression "0 < iVar35" number_literal < identifier) )) (compound_statement "{\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n              }" { (expression_statement "dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);" (assignment_expression "dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" identifier = (binary_expression "dVar40 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x2a0)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x2a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x2a0)" ( (binary_expression "PTR_UINT_003f98e4 + 0x2a0" identifier + number_literal) )))))) ;) (expression_statement "pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30);" (assignment_expression "pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30)" identifier = (cast_expression "(double *)((int)&pDVar7[iVar17 - iVar34].red + iVar30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar7[iVar17 - iVar34].red + iVar30)" ( (binary_expression "(int)&pDVar7[iVar17 - iVar34].red + iVar30" (cast_expression "(int)&pDVar7[iVar17 - iVar34].red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar7[iVar17 - iVar34].red" & (field_expression "pDVar7[iVar17 - iVar34].red" (subscript_expression "pDVar7[iVar17 - iVar34]" identifier [ (binary_expression "iVar17 - iVar34" identifier - identifier) ]) . field_identifier))) + identifier) )))) ;) (expression_statement "dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;" (assignment_expression "dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50" identifier = (binary_expression "dVar54 * *pdVar9 * dVar56 + dVar50" (binary_expression "dVar54 * *pdVar9 * dVar56" (binary_expression "dVar54 * *pdVar9" identifier * (pointer_expression "*pdVar9" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;" (assignment_expression "dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47" identifier = (binary_expression "dVar54 * pdVar9[1] * dVar56 + dVar47" (binary_expression "dVar54 * pdVar9[1] * dVar56" (binary_expression "dVar54 * pdVar9[1]" identifier * (subscript_expression "pdVar9[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;" (assignment_expression "dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43" identifier = (binary_expression "dVar54 * pdVar9[2] * dVar56 + dVar43" (binary_expression "dVar54 * pdVar9[2] * dVar56" (binary_expression "dVar54 * pdVar9[2]" identifier * (subscript_expression "pdVar9[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }" { (expression_statement "dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;" (assignment_expression "dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58" identifier = (binary_expression "dVar54 * pdVar9[3] * dVar56 + dVar58" (binary_expression "dVar54 * pdVar9[3] * dVar56" (binary_expression "dVar54 * pdVar9[3]" identifier * (subscript_expression "pdVar9[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) })) (if_statement "if (0 < (int)uVar37) {\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }" if (parenthesized_expression "(0 < (int)uVar37)" ( (binary_expression "0 < (int)uVar37" number_literal < (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }\n                dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);\n                dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }\n                if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }\n              }" { (if_statement "if (iVar35 < (int)(image->columns - 1)) {\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }" if (parenthesized_expression "(iVar35 < (int)(image->columns - 1))" ( (binary_expression "iVar35 < (int)(image->columns - 1)" identifier < (cast_expression "(int)(image->columns - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(image->columns - 1)" ( (binary_expression "image->columns - 1" (field_expression "image->columns" identifier -> field_identifier) - number_literal) )))) )) (compound_statement "{\n                  pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);\n                  dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = *pdVar9 * dVar54 + dVar50;\n                  dVar47 = pdVar9[1] * dVar54 + dVar47;\n                  dVar43 = pdVar9[2] * dVar54 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }\n                }" { (expression_statement "pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31);" (assignment_expression "pdVar9 = (double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31)" identifier = (cast_expression "(double *)((int)&pDVar7[iVar34 + iVar17].red + iVar31)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar7[iVar34 + iVar17].red + iVar31)" ( (binary_expression "(int)&pDVar7[iVar34 + iVar17].red + iVar31" (cast_expression "(int)&pDVar7[iVar34 + iVar17].red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar7[iVar34 + iVar17].red" & (field_expression "pDVar7[iVar34 + iVar17].red" (subscript_expression "pDVar7[iVar34 + iVar17]" identifier [ (binary_expression "iVar34 + iVar17" identifier + identifier) ]) . field_identifier))) + identifier) )))) ;) (expression_statement "dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar54 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = *pdVar9 * dVar54 + dVar50;" (assignment_expression "dVar50 = *pdVar9 * dVar54 + dVar50" identifier = (binary_expression "*pdVar9 * dVar54 + dVar50" (binary_expression "*pdVar9 * dVar54" (pointer_expression "*pdVar9" * identifier) * identifier) + identifier)) ;) (expression_statement "dVar47 = pdVar9[1] * dVar54 + dVar47;" (assignment_expression "dVar47 = pdVar9[1] * dVar54 + dVar47" identifier = (binary_expression "pdVar9[1] * dVar54 + dVar47" (binary_expression "pdVar9[1] * dVar54" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) * identifier) + identifier)) ;) (expression_statement "dVar43 = pdVar9[2] * dVar54 + dVar43;" (assignment_expression "dVar43 = pdVar9[2] * dVar54 + dVar43" identifier = (binary_expression "pdVar9[2] * dVar54 + dVar43" (binary_expression "pdVar9[2] * dVar54" (subscript_expression "pdVar9[2]" identifier [ number_literal ]) * identifier) + identifier)) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                    dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;\n                  }" { (expression_statement "dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58;" (assignment_expression "dVar58 = pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58" identifier = (binary_expression "pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar58" (binary_expression "pdVar9[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (subscript_expression "pdVar9[3]" identifier [ number_literal ]) * (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) + identifier)) ;) })) })) (expression_statement "dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88);" (assignment_expression "dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" identifier = (binary_expression "dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xc88)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xc88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0xc88)" ( (binary_expression "PTR_UINT_003f98e4 + -0xc88" identifier + number_literal) )))))) ;) (expression_statement "pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31);" (assignment_expression "pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar31)" identifier = (cast_expression "(double *)((int)&pDVar7[iVar17].red + iVar31)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar7[iVar17].red + iVar31)" ( (binary_expression "(int)&pDVar7[iVar17].red + iVar31" (cast_expression "(int)&pDVar7[iVar17].red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar7[iVar17].red" & (field_expression "pDVar7[iVar17].red" (subscript_expression "pDVar7[iVar17]" identifier [ identifier ]) . field_identifier))) + identifier) )))) ;) (expression_statement "dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;" (assignment_expression "dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50" identifier = (binary_expression "dVar54 * *pdVar9 * dVar56 + dVar50" (binary_expression "dVar54 * *pdVar9 * dVar56" (binary_expression "dVar54 * *pdVar9" identifier * (pointer_expression "*pdVar9" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;" (assignment_expression "dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47" identifier = (binary_expression "dVar54 * pdVar9[1] * dVar56 + dVar47" (binary_expression "dVar54 * pdVar9[1] * dVar56" (binary_expression "dVar54 * pdVar9[1]" identifier * (subscript_expression "pdVar9[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;" (assignment_expression "dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43" identifier = (binary_expression "dVar54 * pdVar9[2] * dVar56 + dVar43" (binary_expression "dVar54 * pdVar9[2] * dVar56" (binary_expression "dVar54 * pdVar9[2]" identifier * (subscript_expression "pdVar9[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                  dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                }" { (expression_statement "dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;" (assignment_expression "dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58" identifier = (binary_expression "dVar54 * pdVar9[3] * dVar56 + dVar58" (binary_expression "dVar54 * pdVar9[3] * dVar56" (binary_expression "dVar54 * pdVar9[3]" identifier * (subscript_expression "pdVar9[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) (if_statement "if (0 < iVar35) {\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }" if (parenthesized_expression "(0 < iVar35)" ( (binary_expression "0 < iVar35" number_literal < identifier) )) (compound_statement "{\n                  dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);\n                  dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;\n                  dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;\n                  dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;\n                  if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }\n                }" { (expression_statement "dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);" (assignment_expression "dVar54 = dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" identifier = (binary_expression "dVar40 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xcc0)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xcc0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0xcc0)" ( (binary_expression "PTR_UINT_003f98e4 + -0xcc0" identifier + number_literal) )))))) ;) (expression_statement "pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31);" (assignment_expression "pdVar9 = (double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31)" identifier = (cast_expression "(double *)((int)&pDVar7[iVar17 - iVar34].red + iVar31)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar7[iVar17 - iVar34].red + iVar31)" ( (binary_expression "(int)&pDVar7[iVar17 - iVar34].red + iVar31" (cast_expression "(int)&pDVar7[iVar17 - iVar34].red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar7[iVar17 - iVar34].red" & (field_expression "pDVar7[iVar17 - iVar34].red" (subscript_expression "pDVar7[iVar17 - iVar34]" identifier [ (binary_expression "iVar17 - iVar34" identifier - identifier) ]) . field_identifier))) + identifier) )))) ;) (expression_statement "dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar56 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50;" (assignment_expression "dVar50 = dVar54 * *pdVar9 * dVar56 + dVar50" identifier = (binary_expression "dVar54 * *pdVar9 * dVar56 + dVar50" (binary_expression "dVar54 * *pdVar9 * dVar56" (binary_expression "dVar54 * *pdVar9" identifier * (pointer_expression "*pdVar9" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47;" (assignment_expression "dVar47 = dVar54 * pdVar9[1] * dVar56 + dVar47" identifier = (binary_expression "dVar54 * pdVar9[1] * dVar56 + dVar47" (binary_expression "dVar54 * pdVar9[1] * dVar56" (binary_expression "dVar54 * pdVar9[1]" identifier * (subscript_expression "pdVar9[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43;" (assignment_expression "dVar43 = dVar54 * pdVar9[2] * dVar56 + dVar43" identifier = (binary_expression "dVar54 * pdVar9[2] * dVar56 + dVar43" (binary_expression "dVar54 * pdVar9[2] * dVar56" (binary_expression "dVar54 * pdVar9[2]" identifier * (subscript_expression "pdVar9[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                    dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;\n                  }" { (expression_statement "dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58;" (assignment_expression "dVar58 = dVar54 * pdVar9[3] * dVar56 + dVar58" identifier = (binary_expression "dVar54 * pdVar9[3] * dVar56 + dVar58" (binary_expression "dVar54 * pdVar9[3] * dVar56" (binary_expression "dVar54 * pdVar9[3]" identifier * (subscript_expression "pdVar9[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) })) })) (if_statement "if (0.0 <= dVar50) {\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar46 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar50)" ( (binary_expression "0.0 <= dVar50" number_literal <= identifier) )) (compound_statement "{\n                if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar50 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar46 = (float)dVar50;\n                }\n                else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar50 < *(double *)(puVar38 + 0x4a48))" ( (binary_expression "dVar50 < *(double *)(puVar38 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar46 = (float)dVar50;\n                }" { (expression_statement "fVar46 = (float)dVar50;" (assignment_expression "fVar46 = (float)dVar50" identifier = (cast_expression "(float)dVar50" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar46 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar46 = 0.0;\n              }" else (compound_statement "{\n                fVar46 = 0.0;\n              }" { (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar50 = (double)fVar46;" (assignment_expression "dVar50 = (double)fVar46" identifier = (cast_expression "(double)fVar46" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= dVar47) {\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar49 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar47)" ( (binary_expression "0.0 <= dVar47" number_literal <= identifier) )) (compound_statement "{\n                if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar47 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar49 = (float)dVar47;\n                }\n                else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar47 < *(double *)(puVar38 + 0x4a48))" ( (binary_expression "dVar47 < *(double *)(puVar38 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar49 = (float)dVar47;\n                }" { (expression_statement "fVar49 = (float)dVar47;" (assignment_expression "fVar49 = (float)dVar47" identifier = (cast_expression "(float)dVar47" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar49 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar49 = 0.0;\n              }" else (compound_statement "{\n                fVar49 = 0.0;\n              }" { (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar47 = (double)fVar49;" (assignment_expression "dVar47 = (double)fVar49" identifier = (cast_expression "(double)fVar49" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= dVar43) {\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar45 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar43)" ( (binary_expression "0.0 <= dVar43" number_literal <= identifier) )) (compound_statement "{\n                if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar43 < *(double *)(puVar38 + 0x4a48)) {\n                  fVar45 = (float)dVar43;\n                }\n                else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar43 < *(double *)(puVar38 + 0x4a48))" ( (binary_expression "dVar43 < *(double *)(puVar38 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar45 = (float)dVar43;\n                }" { (expression_statement "fVar45 = (float)dVar43;" (assignment_expression "fVar45 = (float)dVar43" identifier = (cast_expression "(float)dVar43" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar45 = 0.0;\n              }" else (compound_statement "{\n                fVar45 = 0.0;\n              }" { (expression_statement "fVar45 = 0.0;" (assignment_expression "fVar45 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar43 = (double)fVar45;" (assignment_expression "dVar43 = (double)fVar45" identifier = (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }\n                dVar58 = (double)fVar52;\n              }" { (if_statement "if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar52 = 0.0;\n                }" if (parenthesized_expression "(0.0 <= dVar58)" ( (binary_expression "0.0 <= dVar58" number_literal <= identifier) )) (compound_statement "{\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }" { (if_statement "if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                  }\n                  else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" if (parenthesized_expression "(dVar58 < *(double *)(puVar38 + 0x4a48))" ( (binary_expression "dVar58 < *(double *)(puVar38 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                    fVar52 = (float)dVar58;\n                  }" { (expression_statement "fVar52 = (float)dVar58;" (assignment_expression "fVar52 = (float)dVar58" identifier = (cast_expression "(float)dVar58" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" else (compound_statement "{\n                    fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" { (expression_statement "fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar52 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                  fVar52 = 0.0;\n                }" else (compound_statement "{\n                  fVar52 = 0.0;\n                }" { (expression_statement "fVar52 = 0.0;" (assignment_expression "fVar52 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar58 = (double)fVar52;" (assignment_expression "dVar58 = (double)fVar52" identifier = (cast_expression "(double)fVar52" ( (type_descriptor "double" primitive_type) ) identifier)) ;) })) (if_statement "if (0.0 <= fVar46) {\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }\n              else {\n                uVar23 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar46)" ( (binary_expression "0.0 <= fVar46" number_literal <= identifier) )) (compound_statement "{\n                uVar23 = 0xff;\n                if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }\n              }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }" if (parenthesized_expression "(fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar46 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar46)) {\n                    uVar23 = 0;\n                  }\n                  else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar46))" ( (call_expression "NAN(fVar46)" identifier (argument_list "(fVar46)" ( identifier ))) )) (compound_statement "{\n                    uVar23 = 0;\n                  }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }" else (if_statement "if (0.0 < fVar46) {\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar23 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar46)" ( (binary_expression "0.0 < fVar46" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar23 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar46 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar46 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar46" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar23 = (int)dVar54 & 0xff;\n                    }" { (expression_statement "dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar54 = (double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar46 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar46 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar46" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar23 = (int)dVar54 & 0xff;" (assignment_expression "uVar23 = (int)dVar54 & 0xff" identifier = (binary_expression "(int)dVar54 & 0xff" (cast_expression "(int)dVar54" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar23 = 0xff;\n                    }" else (compound_statement "{\n                      uVar23 = 0xff;\n                    }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar23 = 0;\n                  }" else (compound_statement "{\n                    uVar23 = 0;\n                  }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) }))))) })) }) (else_clause "else {\n                uVar23 = 0;\n              }" else (compound_statement "{\n                uVar23 = 0;\n              }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar49) {\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }\n              else {\n                uVar10 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar49)" ( (binary_expression "0.0 <= fVar49" number_literal <= identifier) )) (compound_statement "{\n                if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }\n              }" { (if_statement "if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }\n                else {\n                  uVar10 = 0xff;\n                }" if (parenthesized_expression "(fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar49)) {\n                    uVar10 = 0;\n                  }\n                  else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar49))" ( (call_expression "NAN(fVar49)" identifier (argument_list "(fVar49)" ( identifier ))) )) (compound_statement "{\n                    uVar10 = 0;\n                  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }" else (if_statement "if (0.0 < fVar49) {\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar10 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar49)" ( (binary_expression "0.0 < fVar49" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar10 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar49 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar49 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar49" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar10 = (int)dVar54 & 0xff;\n                    }" { (expression_statement "dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar54 = (double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar49 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar49 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar49" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar10 = (int)dVar54 & 0xff;" (assignment_expression "uVar10 = (int)dVar54 & 0xff" identifier = (binary_expression "(int)dVar54 & 0xff" (cast_expression "(int)dVar54" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar10 = 0xff;\n                    }" else (compound_statement "{\n                      uVar10 = 0xff;\n                    }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar10 = 0;\n                  }" else (compound_statement "{\n                    uVar10 = 0;\n                  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                  uVar10 = 0xff;\n                }" else (compound_statement "{\n                  uVar10 = 0xff;\n                }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                uVar10 = 0;\n              }" else (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar45) {\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }\n              else {\n                uVar24 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar45)" ( (binary_expression "0.0 <= fVar45" number_literal <= identifier) )) (compound_statement "{\n                if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }\n              }" { (if_statement "if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }\n                else {\n                  uVar24 = 0xff;\n                }" if (parenthesized_expression "(fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar45)) {\n                    uVar24 = 0;\n                  }\n                  else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar45))" ( (call_expression "NAN(fVar45)" identifier (argument_list "(fVar45)" ( identifier ))) )) (compound_statement "{\n                    uVar24 = 0;\n                  }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }" else (if_statement "if (0.0 < fVar45) {\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar24 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar45)" ( (binary_expression "0.0 < fVar45" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar45 / *(double *)(puVar4 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar45 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar54 & 0xff;\n                    }" { (expression_statement "dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar54 = (double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar45 / *(double *)(puVar4 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar45 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar24 = (int)dVar54 & 0xff;" (assignment_expression "uVar24 = (int)dVar54 & 0xff" identifier = (binary_expression "(int)dVar54 & 0xff" (cast_expression "(int)dVar54" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar24 = 0xff;\n                    }" else (compound_statement "{\n                      uVar24 = 0xff;\n                    }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar24 = 0;\n                  }" else (compound_statement "{\n                    uVar24 = 0;\n                  }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                  uVar24 = 0xff;\n                }" else (compound_statement "{\n                  uVar24 = 0xff;\n                }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                uVar24 = 0;\n              }" else (compound_statement "{\n                uVar24 = 0;\n              }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2;" (assignment_expression "uVar23 = (uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2" identifier = (binary_expression "(uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6 | uVar23 >> 2" (binary_expression "(uVar24 >> 2) << 0xc | (uVar10 >> 2) << 6" (binary_expression "(uVar24 >> 2) << 0xc" (parenthesized_expression "(uVar24 >> 2)" ( (binary_expression "uVar24 >> 2" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 2) << 6" (parenthesized_expression "(uVar10 >> 2)" ( (binary_expression "uVar10 >> 2" identifier >> number_literal) )) << number_literal)) | (binary_expression "uVar23 >> 2" identifier >> number_literal))) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }\n                uVar23 = uVar23 | (uVar10 >> 2) << 0x12;\n              }" { (if_statement "if (0.0 <= dVar58) {\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }\n                else {\n                  uVar10 = 0;\n                }" if (parenthesized_expression "(0.0 <= dVar58)" ( (binary_expression "0.0 <= dVar58" number_literal <= identifier) )) (compound_statement "{\n                  if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }\n                }" { (if_statement "if (dVar58 < *(double *)(puVar38 + 0x4a48)) {\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }\n                  else {\n                    uVar10 = 0xff;\n                  }" if (parenthesized_expression "(dVar58 < *(double *)(puVar38 + 0x4a48))" ( (binary_expression "dVar58 < *(double *)(puVar38 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                    fVar52 = (float)dVar58;\n                    if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }\n                  }" { (expression_statement "fVar52 = (float)dVar58;" (assignment_expression "fVar52 = (float)dVar58" identifier = (cast_expression "(float)dVar58" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (NAN(fVar52)) {\n                      uVar10 = 0;\n                    }\n                    else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }" if (parenthesized_expression "(NAN(fVar52))" ( (call_expression "NAN(fVar52)" identifier (argument_list "(fVar52)" ( identifier ))) )) (compound_statement "{\n                      uVar10 = 0;\n                    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }" else (if_statement "if (0.0 < fVar52) {\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar10 = 0;\n                    }" if (parenthesized_expression "(0.0 < fVar52)" ( (binary_expression "0.0 < fVar52" number_literal < identifier) )) (compound_statement "{\n                      if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }\n                    }" { (if_statement "if ((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }\n                      else {\n                        uVar10 = 0xff;\n                      }" if (parenthesized_expression "((double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar52 / *(double *)(puVar4 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar52 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar52" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar10 = (int)dVar54 & 0xff;\n                      }" { (expression_statement "dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar54 = (double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar52 / *(double *)(puVar4 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar52 / *(double *)(puVar4 + -0x2a80)" (cast_expression "(double)fVar52" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54) {\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar54" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar54 = dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar54 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar10 = (int)dVar54 & 0xff;" (assignment_expression "uVar10 = (int)dVar54 & 0xff" identifier = (binary_expression "(int)dVar54 & 0xff" (cast_expression "(int)dVar54" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                        uVar10 = 0xff;\n                      }" else (compound_statement "{\n                        uVar10 = 0xff;\n                      }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      uVar10 = 0;\n                    }" else (compound_statement "{\n                      uVar10 = 0;\n                    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                    uVar10 = 0xff;\n                  }" else (compound_statement "{\n                    uVar10 = 0xff;\n                  }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                  uVar10 = 0;\n                }" else (compound_statement "{\n                  uVar10 = 0;\n                }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar23 = uVar23 | (uVar10 >> 2) << 0x12;" (assignment_expression "uVar23 = uVar23 | (uVar10 >> 2) << 0x12" identifier = (binary_expression "uVar23 | (uVar10 >> 2) << 0x12" identifier | (binary_expression "(uVar10 >> 2) << 0x12" (parenthesized_expression "(uVar10 >> 2)" ( (binary_expression "uVar10 >> 2" identifier >> number_literal) )) << number_literal))) ;) })) (if_statement "if (cube.cache[uVar23] < 0) {\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }" if (parenthesized_expression "(cube.cache[uVar23] < 0)" ( (binary_expression "cube.cache[uVar23] < 0" (subscript_expression "cube.cache[uVar23]" (field_expression "cube.cache" identifier . field_identifier) [ identifier ]) < number_literal) )) (compound_statement "{\n                fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar52 = fVar46;\n                if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }\n                fVar57 = fVar49;\n                if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }\n                if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }\n                uVar10 = 7;\n                dVar54 = *(double *)(puVar4 + -0x2a80);\n                dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                pNVar16 = cube.root;\n                do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));\n                cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                cube.target.red = dVar50;\n                cube.target.green = dVar47;\n                cube.target.blue = dVar43;\n                cube.target.alpha = dVar58;\n                ClosestColor(image,&cube,pNVar16->parent);\n                cube.cache[uVar23] = cube.color_number;\n              }" { (expression_statement "fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar53 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "fVar52 = fVar46;" (assignment_expression "fVar52 = fVar46" identifier = identifier) ;) (if_statement "if (fVar53 <= fVar46) {\n                  fVar52 = fVar53;\n                }" if (parenthesized_expression "(fVar53 <= fVar46)" ( (binary_expression "fVar53 <= fVar46" identifier <= identifier) )) (compound_statement "{\n                  fVar52 = fVar53;\n                }" { (expression_statement "fVar52 = fVar53;" (assignment_expression "fVar52 = fVar53" identifier = identifier) ;) })) (expression_statement "fVar57 = fVar49;" (assignment_expression "fVar57 = fVar49" identifier = identifier) ;) (if_statement "if (fVar53 <= fVar49) {\n                  fVar57 = fVar53;\n                }" if (parenthesized_expression "(fVar53 <= fVar49)" ( (binary_expression "fVar53 <= fVar49" identifier <= identifier) )) (compound_statement "{\n                  fVar57 = fVar53;\n                }" { (expression_statement "fVar57 = fVar53;" (assignment_expression "fVar57 = fVar53" identifier = identifier) ;) })) (if_statement "if (fVar45 < fVar53) {\n                  fVar53 = fVar45;\n                }" if (parenthesized_expression "(fVar45 < fVar53)" ( (binary_expression "fVar45 < fVar53" identifier < identifier) )) (compound_statement "{\n                  fVar53 = fVar45;\n                }" { (expression_statement "fVar53 = fVar45;" (assignment_expression "fVar53 = fVar45" identifier = identifier) ;) })) (expression_statement "uVar10 = 7;" (assignment_expression "uVar10 = 7" identifier = number_literal) ;) (expression_statement "dVar54 = *(double *)(puVar4 + -0x2a80);" (assignment_expression "dVar54 = *(double *)(puVar4 + -0x2a80)" identifier = (pointer_expression "*(double *)(puVar4 + -0x2a80)" * (cast_expression "(double *)(puVar4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x2a80)" ( (binary_expression "puVar4 + -0x2a80" identifier + number_literal) ))))) ;) (expression_statement "dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);" (assignment_expression "dVar56 = *(double *)(PTR_UINT_003f98e4 + -0x2a78)" identifier = (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) ;) (expression_statement "pNVar16 = cube.root;" (assignment_expression "pNVar16 = cube.root" identifier = (field_expression "cube.root" identifier . field_identifier)) ;) (do_statement "do {\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                } while ((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0));" do (compound_statement "{\n                  uVar24 = 0;\n                  if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }\n                  uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;\n                  if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }\n                  pNVar15 = pNVar16->child[uVar24];\n                  uVar10 = uVar10 - 1;\n                }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))) {\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }" if (parenthesized_expression "((0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46))))" ( (binary_expression "(0.0 <= fVar46) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))" (parenthesized_expression "(0.0 <= fVar46)" ( (binary_expression "0.0 <= fVar46" number_literal <= identifier) )) && (parenthesized_expression "((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)))" ( (parenthesized_expression "(*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46))" ( (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46 || (0.0 < fVar46)" (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar46" (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) )))) <= identifier) || (parenthesized_expression "(0.0 < fVar46)" ( (binary_expression "0.0 < fVar46" number_literal < identifier) ))) )) ))) )) (compound_statement "{\n                    if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar52 / dVar54 < dVar56) {\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }\n                    else {\n                      uVar24 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar52 / dVar54 < dVar56)" ( (binary_expression "(double)fVar52 / dVar54 < dVar56" (binary_expression "(double)fVar52 / dVar54" (cast_expression "(double)fVar52" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                      dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar24 = (int)dVar48 & 0xff;\n                    }" { (expression_statement "dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar48 = (double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar52 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar52 / dVar54" (cast_expression "(double)fVar52" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar24 = (int)dVar48 & 0xff;" (assignment_expression "uVar24 = (int)dVar48 & 0xff" identifier = (binary_expression "(int)dVar48 & 0xff" (cast_expression "(int)dVar48" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar24 = 0xff;\n                    }" else (compound_statement "{\n                      uVar24 = 0xff;\n                    }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }))) })) (if_statement "if (0.0 <= fVar49) {\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(0.0 <= fVar49)" ( (binary_expression "0.0 <= fVar49" number_literal <= identifier) )) (compound_statement "{\n                    if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }\n                  }" { (if_statement "if (fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }" if (parenthesized_expression "(fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar49 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                      if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }\n                    }" { (if_statement "if (NAN(fVar49)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }" if (parenthesized_expression "(NAN(fVar49))" ( (call_expression "NAN(fVar49)" identifier (argument_list "(fVar49)" ( identifier ))) )) (compound_statement "{\n                        uVar13 = 0;\n                      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }" else (compound_statement "{\n                        uVar13 = 0;\n                        if (0.0 < fVar49) goto LAB_0016d63c;\n                      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar49) goto LAB_0016d63c;" if (parenthesized_expression "(0.0 < fVar49)" ( (binary_expression "0.0 < fVar49" number_literal < identifier) )) (goto_statement "goto LAB_0016d63c;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }" else (compound_statement "{\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }\n                    }" { (labeled_statement "LAB_0016d63c:\n                      uVar13 = 0xff;" statement_identifier : (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;)) (if_statement "if ((double)fVar57 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }" if (parenthesized_expression "((double)fVar57 / dVar54 < dVar56)" ( (binary_expression "(double)fVar57 / dVar54 < dVar56" (binary_expression "(double)fVar57 / dVar54" (cast_expression "(double)fVar57" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                        dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar48 & 0xff;\n                      }" { (expression_statement "dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar48 = (double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar57 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar57 / dVar54" (cast_expression "(double)fVar57" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar48 & 0xff;" (assignment_expression "uVar13 = (int)dVar48 & 0xff" identifier = (binary_expression "(int)dVar48 & 0xff" (cast_expression "(int)dVar48" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) })) }))) }) (else_clause "else {\n                    uVar13 = 0;\n                  }" else (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar45) {\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar14 = 0;\n                  }" if (parenthesized_expression "(0.0 <= fVar45)" ( (binary_expression "0.0 <= fVar45" number_literal <= identifier) )) (compound_statement "{\n                    if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }\n                  }" { (if_statement "if (fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }" if (parenthesized_expression "(fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar45 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                      if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }\n                    }" { (if_statement "if (NAN(fVar45)) {\n                        uVar14 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }" if (parenthesized_expression "(NAN(fVar45))" ( (call_expression "NAN(fVar45)" identifier (argument_list "(fVar45)" ( identifier ))) )) (compound_statement "{\n                        uVar14 = 0;\n                      }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }" else (compound_statement "{\n                        if (0.0 < fVar45) goto LAB_0016d6f4;\n                        uVar14 = 0;\n                      }" { (if_statement "if (0.0 < fVar45) goto LAB_0016d6f4;" if (parenthesized_expression "(0.0 < fVar45)" ( (binary_expression "0.0 < fVar45" number_literal < identifier) )) (goto_statement "goto LAB_0016d6f4;" goto statement_identifier ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }" else (compound_statement "{\nLAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }\n                    }" { (labeled_statement "LAB_0016d6f4:\n                      if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }" statement_identifier : (if_statement "if ((double)fVar53 / dVar54 < dVar56) {\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }\n                      else {\n                        uVar14 = 0xff;\n                      }" if (parenthesized_expression "((double)fVar53 / dVar54 < dVar56)" ( (binary_expression "(double)fVar53 / dVar54 < dVar56" (binary_expression "(double)fVar53 / dVar54" (cast_expression "(double)fVar53" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                        dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar14 = (int)dVar48 & 0xff;\n                      }" { (expression_statement "dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar48 = (double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar53 / dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar53 / dVar54" (cast_expression "(double)fVar53" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar14 = (int)dVar48 & 0xff;" (assignment_expression "uVar14 = (int)dVar48 & 0xff" identifier = (binary_expression "(int)dVar48 & 0xff" (cast_expression "(int)dVar48" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                        uVar14 = 0xff;\n                      }" else (compound_statement "{\n                        uVar14 = 0xff;\n                      }" { (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) })))) }))) }) (else_clause "else {\n                    uVar14 = 0;\n                  }" else (compound_statement "{\n                    uVar14 = 0;\n                  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U;" (assignment_expression "uVar24 = ((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U" identifier = (binary_expression "((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1 |\n                           (int)uVar24 >> (uVar10 & 0x1f) & 1U" (binary_expression "((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2 |\n                           ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1" (binary_expression "((int)uVar14 >> (uVar10 & 0x1f) & 1U) << 2" (parenthesized_expression "((int)uVar14 >> (uVar10 & 0x1f) & 1U)" ( (binary_expression "(int)uVar14 >> (uVar10 & 0x1f) & 1U" (binary_expression "(int)uVar14 >> (uVar10 & 0x1f)" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal) | (binary_expression "((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 1" (parenthesized_expression "((int)uVar13 >> (uVar10 & 0x1f) & 1U)" ( (binary_expression "(int)uVar13 >> (uVar10 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar10 & 0x1f)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal)) | (binary_expression "(int)uVar24 >> (uVar10 & 0x1f) & 1U" (binary_expression "(int)uVar24 >> (uVar10 & 0x1f)" (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) & number_literal))) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                    if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;\n                  }" { (if_statement "if (0.0 <= dVar58) {\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }" if (parenthesized_expression "(0.0 <= dVar58)" ( (binary_expression "0.0 <= dVar58" number_literal <= identifier) )) (compound_statement "{\n                      if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }" { (if_statement "if (dVar58 < dVar41) {\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }" if (parenthesized_expression "(dVar58 < dVar41)" ( (binary_expression "dVar58 < dVar41" identifier < identifier) )) (compound_statement "{\n                        fVar55 = (float)dVar58;\n                        if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }" { (expression_statement "fVar55 = (float)dVar58;" (assignment_expression "fVar55 = (float)dVar58" identifier = (cast_expression "(float)dVar58" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (NAN(fVar55)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" if (parenthesized_expression "(NAN(fVar55))" ( (call_expression "NAN(fVar55)" identifier (argument_list "(fVar55)" ( identifier ))) )) (compound_statement "{\n                          uVar13 = 0;\n                        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" else (if_statement "if (0.0 < fVar55) {\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" if (parenthesized_expression "(0.0 < fVar55)" ( (binary_expression "0.0 < fVar55" number_literal < identifier) )) (compound_statement "{\n                          if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }" { (if_statement "if ((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }" if (parenthesized_expression "((double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar55 / dVar42 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar55 / dVar42" (cast_expression "(double)fVar55" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                            dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar48 & 0xff;\n                          }" { (expression_statement "dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar48 = (double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar55 / dVar42 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar55 / dVar42" (cast_expression "(double)fVar55" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48) {\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar48" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                              dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" { (expression_statement "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar48 = dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar48 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar48 & 0xff;" (assignment_expression "uVar13 = (int)dVar48 & 0xff" identifier = (binary_expression "(int)dVar48 & 0xff" (cast_expression "(int)dVar48" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                            uVar13 = 0xff;\n                          }" else (compound_statement "{\n                            uVar13 = 0xff;\n                          }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                          uVar13 = 0;\n                        }" else (compound_statement "{\n                          uVar13 = 0;\n                        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                        uVar13 = 0xff;\n                      }" else (compound_statement "{\n                        uVar13 = 0xff;\n                      }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      uVar13 = 0;\n                    }" else (compound_statement "{\n                      uVar13 = 0;\n                    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3;" (assignment_expression "uVar24 = uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3" identifier = (binary_expression "uVar24 | ((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3" identifier | (binary_expression "((int)uVar13 >> (uVar10 & 0x1f) & 1U) << 3" (parenthesized_expression "((int)uVar13 >> (uVar10 & 0x1f) & 1U)" ( (binary_expression "(int)uVar13 >> (uVar10 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar10 & 0x1f)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal))) ;) })) (expression_statement "pNVar15 = pNVar16->child[uVar24];" (assignment_expression "pNVar15 = pNVar16->child[uVar24]" identifier = (subscript_expression "pNVar16->child[uVar24]" (field_expression "pNVar16->child" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "((pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0))" ( (binary_expression "(pNVar15 != (NodeInfo_conflict *)0x0) && (pNVar16 = pNVar15, uVar10 != 0)" (parenthesized_expression "(pNVar15 != (NodeInfo_conflict *)0x0)" ( (binary_expression "pNVar15 != (NodeInfo_conflict *)0x0" identifier != (cast_expression "(NodeInfo_conflict *)0x0" ( (type_descriptor "NodeInfo_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pNVar16 = pNVar15, uVar10 != 0)" ( (comma_expression "pNVar16 = pNVar15, uVar10 != 0" (assignment_expression "pNVar16 = pNVar15" identifier = identifier) , (binary_expression "uVar10 != 0" identifier != number_literal)) ))) )) ;) (expression_statement "cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);" (assignment_expression "cube.distance = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" (field_expression "cube.distance" identifier . field_identifier) = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88" identifier + number_literal) ))))) ;) (expression_statement "cube.target.red = dVar50;" (assignment_expression "cube.target.red = dVar50" (field_expression "cube.target.red" (field_expression "cube.target" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "cube.target.green = dVar47;" (assignment_expression "cube.target.green = dVar47" (field_expression "cube.target.green" (field_expression "cube.target" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "cube.target.blue = dVar43;" (assignment_expression "cube.target.blue = dVar43" (field_expression "cube.target.blue" (field_expression "cube.target" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "cube.target.alpha = dVar58;" (assignment_expression "cube.target.alpha = dVar58" (field_expression "cube.target.alpha" (field_expression "cube.target" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "ClosestColor(image,&cube,pNVar16->parent);" (call_expression "ClosestColor(image,&cube,pNVar16->parent)" identifier (argument_list "(image,&cube,pNVar16->parent)" ( identifier , (pointer_expression "&cube" & identifier) , (field_expression "pNVar16->parent" identifier -> field_identifier) ))) ;) (expression_statement "cube.cache[uVar23] = cube.color_number;" (assignment_expression "cube.cache[uVar23] = cube.color_number" (subscript_expression "cube.cache[uVar23]" (field_expression "cube.cache" identifier . field_identifier) [ identifier ]) = (field_expression "cube.color_number" identifier . field_identifier)) ;) })) (expression_statement "iVar18 = cube.cache[uVar23];" (assignment_expression "iVar18 = cube.cache[uVar23]" identifier = (subscript_expression "cube.cache[uVar23]" (field_expression "cube.cache" identifier . field_identifier) [ identifier ])) ;) (if_statement "if ((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)) {\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }" if (parenthesized_expression "((image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait))" ( (binary_expression "(image->storage_class == PseudoClass) &&\n                 (image->channel_map[5].traits != UndefinedPixelTrait)" (parenthesized_expression "(image->storage_class == PseudoClass)" ( (binary_expression "image->storage_class == PseudoClass" (field_expression "image->storage_class" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(image->channel_map[5].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[5].traits != UndefinedPixelTrait" (field_expression "image->channel_map[5].traits" (subscript_expression "image->channel_map[5]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n                dVar54 = (double)iVar18;\n                if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;\n              }" { (expression_statement "dVar54 = (double)iVar18;" (assignment_expression "dVar54 = (double)iVar18" identifier = (cast_expression "(double)iVar18" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar18 < 0) {\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (compound_statement "{\n                  dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" { (expression_statement "dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar54 = dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar54 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "*(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54;" (assignment_expression "*(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4) = (float)dVar54" (pointer_expression "*(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4)" * (cast_expression "(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4)" ( (binary_expression "image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[5].offset * 4" (binary_expression "image->number_channels * 4 * iVar17 +\n                          iVar19" (binary_expression "image->number_channels * 4 * iVar17" (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal) * identifier) + identifier) + (binary_expression "image->channel_map[5].offset * 4" (field_expression "image->channel_map[5].offset" (subscript_expression "image->channel_map[5]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))) = (cast_expression "(float)dVar54" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if ((cube.quantize_info)->measure_error == MagickFalse) {\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }" if (parenthesized_expression "((cube.quantize_info)->measure_error == MagickFalse)" ( (binary_expression "(cube.quantize_info)->measure_error == MagickFalse" (field_expression "(cube.quantize_info)->measure_error" (parenthesized_expression "(cube.quantize_info)" ( (field_expression "cube.quantize_info" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n                pPVar26 = image->channel_map;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;\n                *(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;\n                *(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;\n                if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }\n              }" { (expression_statement "pPVar26 = image->channel_map;" (assignment_expression "pPVar26 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "*(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red;" (assignment_expression "*(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4) =\n                     (float)image->colormap[iVar18].red" (pointer_expression "*(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4)" * (cast_expression "(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4)" ( (binary_expression "image->number_channels * 4 * iVar17 + iVar19 + pPVar26->offset * 4" (binary_expression "image->number_channels * 4 * iVar17 + iVar19" (binary_expression "image->number_channels * 4 * iVar17" (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal) * identifier) + identifier) + (binary_expression "pPVar26->offset * 4" (field_expression "pPVar26->offset" identifier -> field_identifier) * number_literal)) )))) = (cast_expression "(float)image->colormap[iVar18].red" ( (type_descriptor "float" primitive_type) ) (field_expression "image->colormap[iVar18].red" (subscript_expression "image->colormap[iVar18]" (field_expression "image->colormap" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) (expression_statement "*(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green;" (assignment_expression "*(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4) =\n                     (float)image->colormap[iVar18].green" (pointer_expression "*(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4)" * (cast_expression "(float *)(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4)" ( (binary_expression "image->number_channels * 4 * iVar17 + iVar19 + pPVar26[1].offset * 4" (binary_expression "image->number_channels * 4 * iVar17 + iVar19" (binary_expression "image->number_channels * 4 * iVar17" (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal) * identifier) + identifier) + (binary_expression "pPVar26[1].offset * 4" (field_expression "pPVar26[1].offset" (subscript_expression "pPVar26[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))) = (cast_expression "(float)image->colormap[iVar18].green" ( (type_descriptor "float" primitive_type) ) (field_expression "image->colormap[iVar18].green" (subscript_expression "image->colormap[iVar18]" (field_expression "image->colormap" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) (expression_statement "*(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue;" (assignment_expression "*(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4) =\n                     (float)image->colormap[iVar18].blue" (pointer_expression "*(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4)" ( (binary_expression "image->number_channels * 4 * iVar17 +\n                          iVar19 + image->channel_map[2].offset * 4" (binary_expression "image->number_channels * 4 * iVar17 +\n                          iVar19" (binary_expression "image->number_channels * 4 * iVar17" (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal) * identifier) + identifier) + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))) = (cast_expression "(float)image->colormap[iVar18].blue" ( (type_descriptor "float" primitive_type) ) (field_expression "image->colormap[iVar18].blue" (subscript_expression "image->colormap[iVar18]" (field_expression "image->colormap" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) (if_statement "if ((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)) {\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }" if (parenthesized_expression "((cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait))" ( (binary_expression "(cube.associate_alpha != MagickFalse) &&\n                   (image->channel_map[4].traits != UndefinedPixelTrait)" (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) && (parenthesized_expression "(image->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n                  *(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;\n                }" { (expression_statement "*(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha;" (assignment_expression "*(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4) =\n                       (float)image->colormap[iVar18].alpha" (pointer_expression "*(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4)" ( (binary_expression "image->number_channels * 4 * iVar17 +\n                            iVar19 + image->channel_map[4].offset * 4" (binary_expression "image->number_channels * 4 * iVar17 +\n                            iVar19" (binary_expression "image->number_channels * 4 * iVar17" (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal) * identifier) + identifier) + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))) = (cast_expression "(float)image->colormap[iVar18].alpha" ( (type_descriptor "float" primitive_type) ) (field_expression "image->colormap[iVar18].alpha" (subscript_expression "image->colormap[iVar18]" (field_expression "image->colormap" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) })) })) (expression_statement "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception);" (assignment_expression "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar8,exception)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,exception)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n                bVar1 = false;\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar1 = false;\n              }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (expression_statement "pPVar12 = image->colormap;" (assignment_expression "pPVar12 = image->colormap" identifier = (field_expression "image->colormap" identifier -> field_identifier)) ;) (if_statement "if ((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))) {\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }\n              else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }" if (parenthesized_expression "((cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48)))" ( (binary_expression "(cube.associate_alpha == MagickFalse) ||\n                 (dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))" (parenthesized_expression "(cube.associate_alpha == MagickFalse)" ( (binary_expression "cube.associate_alpha == MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) == identifier) )) || (parenthesized_expression "(dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48))" ( (comma_expression "dVar54 = pPVar12[iVar18].alpha, dVar54 == *(double *)(puVar38 + 0x4a48)" (assignment_expression "dVar54 = pPVar12[iVar18].alpha" identifier = (field_expression "pPVar12[iVar18].alpha" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier)) , (binary_expression "dVar54 == *(double *)(puVar38 + 0x4a48)" identifier == (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                dVar51 = pPVar12[iVar18].red;\n                dVar48 = pPVar12[iVar18].green;\n                dVar56 = pPVar12[iVar18].blue;\n                dVar54 = pPVar12[iVar18].alpha;\n              }" { (expression_statement "dVar51 = pPVar12[iVar18].red;" (assignment_expression "dVar51 = pPVar12[iVar18].red" identifier = (field_expression "pPVar12[iVar18].red" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "dVar48 = pPVar12[iVar18].green;" (assignment_expression "dVar48 = pPVar12[iVar18].green" identifier = (field_expression "pPVar12[iVar18].green" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "dVar56 = pPVar12[iVar18].blue;" (assignment_expression "dVar56 = pPVar12[iVar18].blue" identifier = (field_expression "pPVar12[iVar18].blue" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "dVar54 = pPVar12[iVar18].alpha;" (assignment_expression "dVar54 = pPVar12[iVar18].alpha" identifier = (field_expression "pPVar12[iVar18].alpha" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier)) ;) }) (else_clause "else {\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }" else (compound_statement "{\n                dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);\n                dVar51 = dVar56 * pPVar12[iVar18].red;\n                dVar48 = dVar56 * pPVar12[iVar18].green;\n                dVar56 = dVar56 * pPVar12[iVar18].blue;\n              }" { (expression_statement "dVar56 = dVar54 * *(double *)(puVar3 + 0x4410);" (assignment_expression "dVar56 = dVar54 * *(double *)(puVar3 + 0x4410)" identifier = (binary_expression "dVar54 * *(double *)(puVar3 + 0x4410)" identifier * (pointer_expression "*(double *)(puVar3 + 0x4410)" * (cast_expression "(double *)(puVar3 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x4410)" ( (binary_expression "puVar3 + 0x4410" identifier + number_literal) )))))) ;) (expression_statement "dVar51 = dVar56 * pPVar12[iVar18].red;" (assignment_expression "dVar51 = dVar56 * pPVar12[iVar18].red" identifier = (binary_expression "dVar56 * pPVar12[iVar18].red" identifier * (field_expression "pPVar12[iVar18].red" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier))) ;) (expression_statement "dVar48 = dVar56 * pPVar12[iVar18].green;" (assignment_expression "dVar48 = dVar56 * pPVar12[iVar18].green" identifier = (binary_expression "dVar56 * pPVar12[iVar18].green" identifier * (field_expression "pPVar12[iVar18].green" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier))) ;) (expression_statement "dVar56 = dVar56 * pPVar12[iVar18].blue;" (assignment_expression "dVar56 = dVar56 * pPVar12[iVar18].blue" identifier = (binary_expression "dVar56 * pPVar12[iVar18].blue" identifier * (field_expression "pPVar12[iVar18].blue" (subscript_expression "pPVar12[iVar18]" identifier [ identifier ]) . field_identifier))) ;) }))) (expression_statement "pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30);" (assignment_expression "pdVar9 = (double *)((int)&pDVar7[iVar17].red + iVar30)" identifier = (cast_expression "(double *)((int)&pDVar7[iVar17].red + iVar30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar7[iVar17].red + iVar30)" ( (binary_expression "(int)&pDVar7[iVar17].red + iVar30" (cast_expression "(int)&pDVar7[iVar17].red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar7[iVar17].red" & (field_expression "pDVar7[iVar17].red" (subscript_expression "pDVar7[iVar17]" identifier [ identifier ]) . field_identifier))) + identifier) )))) ;) (expression_statement "*pdVar9 = dVar50 - dVar51;" (assignment_expression "*pdVar9 = dVar50 - dVar51" (pointer_expression "*pdVar9" * identifier) = (binary_expression "dVar50 - dVar51" identifier - identifier)) ;) (expression_statement "pdVar9[1] = dVar47 - dVar48;" (assignment_expression "pdVar9[1] = dVar47 - dVar48" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) = (binary_expression "dVar47 - dVar48" identifier - identifier)) ;) (expression_statement "pdVar9[2] = dVar43 - dVar56;" (assignment_expression "pdVar9[2] = dVar43 - dVar56" (subscript_expression "pdVar9[2]" identifier [ number_literal ]) = (binary_expression "dVar43 - dVar56" identifier - identifier)) ;) (if_statement "if (cube.associate_alpha != MagickFalse) {\n                pdVar9[3] = dVar58 - dVar54;\n              }" if (parenthesized_expression "(cube.associate_alpha != MagickFalse)" ( (binary_expression "cube.associate_alpha != MagickFalse" (field_expression "cube.associate_alpha" identifier . field_identifier) != identifier) )) (compound_statement "{\n                pdVar9[3] = dVar58 - dVar54;\n              }" { (expression_statement "pdVar9[3] = dVar58 - dVar54;" (assignment_expression "pdVar9[3] = dVar58 - dVar54" (subscript_expression "pdVar9[3]" identifier [ number_literal ]) = (binary_expression "dVar58 - dVar54" identifier - identifier)) ;) })) (if_statement "if ((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)) {\n                bVar1 = false;\n              }" if (parenthesized_expression "((image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0))" ( (binary_expression "(image->progress_monitor != (MagickProgressMonitor)0x0) &&\n                 (iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)" (parenthesized_expression "(image->progress_monitor != (MagickProgressMonitor)0x0)" ( (binary_expression "image->progress_monitor != (MagickProgressMonitor)0x0" (field_expression "image->progress_monitor" identifier -> field_identifier) != (cast_expression "(MagickProgressMonitor)0x0" ( (type_descriptor "MagickProgressMonitor" type_identifier) ) number_literal)) )) && (parenthesized_expression "(iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0)" ( (comma_expression "iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows), iVar17 == 0" (assignment_expression "iVar17 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows)" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows)" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" * (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar37 >> 0x1f,uVar37,0,image->rows)" ( identifier , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc" identifier + number_literal) , (binary_expression "(int)uVar37 >> 0x1f" (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , identifier , number_literal , (field_expression "image->rows" identifier -> field_identifier) )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                bVar1 = false;\n              }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "sVar36 = image->columns;" (assignment_expression "sVar36 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(iVar35 < (int)sVar36)" ( (binary_expression "iVar35 < (int)sVar36" identifier < (cast_expression "(int)sVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) }) (else_clause "else {\n          bVar1 = false;\n        }" else (compound_statement "{\n          bVar1 = false;\n        }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }))) (expression_statement "uVar37 = uVar37 + 1;" (assignment_expression "uVar37 = uVar37 + 1" identifier = (binary_expression "uVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar37 < (int)image->rows)" ( (binary_expression "(int)uVar37 < (int)image->rows" (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) })) (expression_statement "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8);" (call_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar8)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003f9f0c" * (cast_expression "(code *)PTR_DestroyCacheView_003f9f0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "DestroyPixelThreadSet(local_390);" (call_expression "DestroyPixelThreadSet(local_390)" identifier (argument_list "(local_390)" ( identifier ))) ;) (expression_statement "MVar22 = MagickTrue;" (assignment_expression "MVar22 = MagickTrue" identifier = identifier) ;) }))) (labeled_statement "LAB_0016dc30:\n  if (iVar6 == *(int *)PTR___stack_chk_guard_003fa248) {\n    return MVar22;\n  }" statement_identifier : (if_statement "if (iVar6 == *(int *)PTR___stack_chk_guard_003fa248) {\n    return MVar22;\n  }" if (parenthesized_expression "(iVar6 == *(int *)PTR___stack_chk_guard_003fa248)" ( (binary_expression "iVar6 == *(int *)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return MVar22;\n  }" { (return_statement "return MVar22;" return identifier ;) }))) (expression_statement "puVar38 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar38 = PTR___stack_chk_fail_003fa07c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" * (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar38 + 0x28c55c))\n            (0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4);" (call_expression "(**(code **)(puVar38 + 0x28c55c))\n            (0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4)" (parenthesized_expression "(**(code **)(puVar38 + 0x28c55c))" ( (pointer_expression "**(code **)(puVar38 + 0x28c55c)" * (pointer_expression "*(code **)(puVar38 + 0x28c55c)" * (cast_expression "(code **)(puVar38 + 0x28c55c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x28c55c)" ( (binary_expression "puVar38 + 0x28c55c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,*(int *)(puVar38 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar38 + 0x28bc48) + 0x10f4)" ( number_literal , (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4ad4" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x28bc48) + 0x10f4" (pointer_expression "*(int *)(puVar38 + 0x28bc48)" * (cast_expression "(int *)(puVar38 + 0x28bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc48)" ( (binary_expression "puVar38 + 0x28bc48" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar6 == 0) {\n    (**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar6 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);\n  }" { (expression_statement "(**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);" (call_expression "(**(code **)(puVar38 + 0x28c984))\n              (*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(**(code **)(puVar38 + 0x28c984))" ( (pointer_expression "**(code **)(puVar38 + 0x28c984)" * (pointer_expression "*(code **)(puVar38 + 0x28c984)" * (cast_expression "(code **)(puVar38 + 0x28c984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x28c984)" ( (binary_expression "puVar38 + 0x28c984" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x28bc5c) + -0x4d84,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar38 + 0x28bc5c) + -0x4ae8)" ( (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4d84" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else if (*(int *)(iVar6 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }" else (if_statement "if (*(int *)(iVar6 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x14) == -0x54535255)" ( (binary_expression "*(int *)(iVar6 + 0x14) == -0x54535255" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(iVar6 + 0x14) = 0x54535254;\n    MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);\n    return MVar22;\n  }" { (expression_statement "*(undefined4 *)(iVar6 + 0x14) = 0x54535254;" (assignment_expression "*(undefined4 *)(iVar6 + 0x14) = 0x54535254" (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6);" (assignment_expression "MVar22 = (**(code **)(puVar38 + 0x28c33c))(iVar6)" identifier = (call_expression "(**(code **)(puVar38 + 0x28c33c))(iVar6)" (parenthesized_expression "(**(code **)(puVar38 + 0x28c33c))" ( (pointer_expression "**(code **)(puVar38 + 0x28c33c)" * (pointer_expression "*(code **)(puVar38 + 0x28c33c)" * (cast_expression "(code **)(puVar38 + 0x28c33c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x28c33c)" ( (binary_expression "puVar38 + 0x28c33c" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier )))) ;) (return_statement "return MVar22;" return identifier ;) })))) (expression_statement "iVar6 = *(int *)(puVar38 + 0x28bc5c) + -0x4d5c;" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x28bc5c) + -0x4d5c" identifier = (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4d5c" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar39 = *(code **)(puVar38 + 0x28c984);" (assignment_expression "pcVar39 = *(code **)(puVar38 + 0x28c984)" identifier = (pointer_expression "*(code **)(puVar38 + 0x28c984)" * (cast_expression "(code **)(puVar38 + 0x28c984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x28c984)" ( (binary_expression "puVar38 + 0x28c984" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar39)(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8);" (call_expression "(*pcVar39)(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(iVar6,*(int *)(puVar38 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar38 + 0x28bc5c) + -0x4ae8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar38 + 0x28bc5c)" * (cast_expression "(int *)(puVar38 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x28bc5c)" ( (binary_expression "puVar38 + 0x28bc5c" identifier + number_literal) )))) + number_literal) ))) ;) (do_statement "do {\n    puVar33 = *(undefined4 **)(iVar6 + 0x60);\n    iVar34 = puVar33[1];\n    uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);\n    *puVar33 = uVar8;\n    (**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));\n    *(int *)(iVar6 + 0x60) = iVar34;\n  } while (iVar34 != 0);" do (compound_statement "{\n    puVar33 = *(undefined4 **)(iVar6 + 0x60);\n    iVar34 = puVar33[1];\n    uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);\n    *puVar33 = uVar8;\n    (**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));\n    *(int *)(iVar6 + 0x60) = iVar34;\n  }" { (expression_statement "puVar33 = *(undefined4 **)(iVar6 + 0x60);" (assignment_expression "puVar33 = *(undefined4 **)(iVar6 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" * (cast_expression "(undefined4 **)(iVar6 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = puVar33[1];" (assignment_expression "iVar34 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33);" (assignment_expression "uVar8 = (**(code **)(pcVar39 + 0x28c254))(*puVar33)" identifier = (call_expression "(**(code **)(pcVar39 + 0x28c254))(*puVar33)" (parenthesized_expression "(**(code **)(pcVar39 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar39 + 0x28c254)" * (pointer_expression "*(code **)(pcVar39 + 0x28c254)" * (cast_expression "(code **)(pcVar39 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x28c254)" ( (binary_expression "pcVar39 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(*puVar33)" ( (pointer_expression "*puVar33" * identifier) )))) ;) (expression_statement "*puVar33 = uVar8;" (assignment_expression "*puVar33 = uVar8" (pointer_expression "*puVar33" * identifier) = identifier) ;) (expression_statement "(**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60));" (call_expression "(**(code **)(pcVar39 + 0x28c254))(*(undefined4 *)(iVar6 + 0x60))" (parenthesized_expression "(**(code **)(pcVar39 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar39 + 0x28c254)" * (pointer_expression "*(code **)(pcVar39 + 0x28c254)" * (cast_expression "(code **)(pcVar39 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x28c254)" ( (binary_expression "pcVar39 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x60))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x60)" * (cast_expression "(undefined4 *)(iVar6 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x60) = iVar34;" (assignment_expression "*(int *)(iVar6 + 0x60) = iVar34" (pointer_expression "*(int *)(iVar6 + 0x60)" * (cast_expression "(int *)(iVar6 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(iVar34 != 0)" ( (binary_expression "iVar34 != 0" identifier != number_literal) )) ;) (if_statement "if (*(int *)(iVar6 + 100) != 0) {\n    uVar8 = (**(code **)(pcVar39 + 0x28c62c))();\n    *(undefined4 *)(iVar6 + 100) = uVar8;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 100) != 0)" ( (binary_expression "*(int *)(iVar6 + 100) != 0" (pointer_expression "*(int *)(iVar6 + 100)" * (cast_expression "(int *)(iVar6 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 100)" ( (binary_expression "iVar6 + 100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar8 = (**(code **)(pcVar39 + 0x28c62c))();\n    *(undefined4 *)(iVar6 + 100) = uVar8;\n  }" { (expression_statement "uVar8 = (**(code **)(pcVar39 + 0x28c62c))();" (assignment_expression "uVar8 = (**(code **)(pcVar39 + 0x28c62c))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x28c62c))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x28c62c))" ( (pointer_expression "**(code **)(pcVar39 + 0x28c62c)" * (pointer_expression "*(code **)(pcVar39 + 0x28c62c)" * (cast_expression "(code **)(pcVar39 + 0x28c62c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x28c62c)" ( (binary_expression "pcVar39 + 0x28c62c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar6 + 100) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 100) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 100)" * (cast_expression "(undefined4 *)(iVar6 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 100)" ( (binary_expression "iVar6 + 100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar8 = (**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0));" (assignment_expression "uVar8 = (**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0))" identifier = (call_expression "(**(code **)(pcVar39 + 0x28c724))(*(undefined4 *)(iVar6 + 0x2f0))" (parenthesized_expression "(**(code **)(pcVar39 + 0x28c724))" ( (pointer_expression "**(code **)(pcVar39 + 0x28c724)" * (pointer_expression "*(code **)(pcVar39 + 0x28c724)" * (cast_expression "(code **)(pcVar39 + 0x28c724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x28c724)" ( (binary_expression "pcVar39 + 0x28c724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x2f0))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x2f0)" * (cast_expression "(undefined4 *)(iVar6 + 0x2f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2f0)" ( (binary_expression "iVar6 + 0x2f0" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x2f0) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x2f0) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x2f0)" * (cast_expression "(undefined4 *)(iVar6 + 0x2f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2f0)" ( (binary_expression "iVar6 + 0x2f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "MVar22 = (**(code **)(pcVar39 + 0x28c254))(iVar6);" (assignment_expression "MVar22 = (**(code **)(pcVar39 + 0x28c254))(iVar6)" identifier = (call_expression "(**(code **)(pcVar39 + 0x28c254))(iVar6)" (parenthesized_expression "(**(code **)(pcVar39 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar39 + 0x28c254)" * (pointer_expression "*(code **)(pcVar39 + 0x28c254)" * (cast_expression "(code **)(pcVar39 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x28c254)" ( (binary_expression "pcVar39 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier )))) ;) (return_statement "return MVar22;" return identifier ;) })))
(translation_unit "undefined4 FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}\n\n" (function_definition "undefined4 FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}" type_identifier (function_declarator "FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)" identifier (parameter_list "(int *param_1,undefined4 *param_2,undefined4 param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 **ppuVar15;" type_identifier (pointer_declarator "**ppuVar15" * (pointer_declarator "*ppuVar15" * identifier)) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "float fVar35;" primitive_type identifier ;) (declaration "float fVar36;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "float fVar39;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar42;" primitive_type identifier ;) (declaration "float fVar43;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "float fVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "float fVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "int *local_390;" primitive_type (pointer_declarator "*local_390" * identifier) ;) (declaration "char *local_37c;" primitive_type (pointer_declarator "*local_37c" * identifier) ;) (declaration "undefined4 *local_378 [6];" type_identifier (pointer_declarator "*local_378 [6]" * (array_declarator "local_378 [6]" identifier [ number_literal ])) ;) (declaration "double local_360;" primitive_type identifier ;) (declaration "double local_358;" primitive_type identifier ;) (declaration "double local_350;" primitive_type identifier ;) (declaration "double local_348;" primitive_type identifier ;) (declaration "undefined8 local_340;" type_identifier identifier ;) (declaration "undefined4 local_320;" type_identifier identifier ;) (declaration "int local_310;" primitive_type identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar26 = param_1[6];" (assignment_expression "iVar26 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003fa154" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003fa154" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);" (assignment_expression "local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" identifier = (cast_expression "(int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(extraout_v1,4)" ( identifier , number_literal ))))) ;) (if_statement "if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" if (parenthesized_expression "(local_390 == (int *)0x0)" ( (binary_expression "local_390 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = 0;\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" else (compound_statement "{\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" { (expression_statement "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);" (call_expression "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_003fa6ec)" ( (pointer_expression "*(code *)PTR_memset_003fa6ec" * (cast_expression "(code *)PTR_memset_003fa6ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_390,0,extraout_v1 << 2)" ( identifier , number_literal , (binary_expression "extraout_v1 << 2" identifier << number_literal) ))) ;) (if_statement "if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }" if (parenthesized_expression "(0 < extraout_v1)" ( (binary_expression "0 < extraout_v1" number_literal < identifier) )) (compound_statement "{\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "piVar23 = local_390;" (assignment_expression "piVar23 = local_390" identifier = identifier) ;) (do_statement "do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);" do (compound_statement "{\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);" (assignment_expression "iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar26,0x40)" ( identifier , number_literal )))) ;) (expression_statement "*piVar23 = iVar5;" (assignment_expression "*piVar23 = iVar5" (pointer_expression "*piVar23" * identifier) = identifier) ;) (if_statement "if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" { (expression_statement "local_390 = (int *)FUN_00166940(local_390);" (assignment_expression "local_390 = (int *)FUN_00166940(local_390)" identifier = (cast_expression "(int *)FUN_00166940(local_390)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00166940(local_390)" identifier (argument_list "(local_390)" ( identifier ))))) ;) (if_statement "if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }" if (parenthesized_expression "(local_390 == (int *)0x0)" ( (binary_expression "local_390 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0016dc30;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar23 = piVar23 + 1;" (assignment_expression "piVar23 = piVar23 + 1" identifier = (binary_expression "piVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(extraout_v1 != iVar24)" ( (binary_expression "extraout_v1 != iVar24" identifier != identifier) )) ;) })) (expression_statement "iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);" (assignment_expression "iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" identifier = (call_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" (parenthesized_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)" ( (pointer_expression "*(code *)PTR_GetImageArtifact_003fa4d8" * (cast_expression "(code *)PTR_GetImageArtifact_003fa4d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" ( identifier , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c" identifier + number_literal) )))) ;) (if_statement "if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }" { (expression_statement "dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" else (compound_statement "{\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" { (expression_statement "dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);" (assignment_expression "dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" identifier = (cast_expression "(double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)" ( (pointer_expression "*(code *)PTR_InterpretLocaleValue_003fa780" * (cast_expression "(code *)PTR_InterpretLocaleValue_003fa780" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar26,&local_37c)" ( identifier , (pointer_expression "&local_37c" & identifier) ))))) ;) (if_statement "if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" if (parenthesized_expression "(*local_37c == '%')" ( (binary_expression "*local_37c == '%'" (pointer_expression "*local_37c" * identifier) == (char_literal "'%'" ' character ')) )) (compound_statement "{\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" { (expression_statement "dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);" (assignment_expression "dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a48)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a48)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a48" identifier + number_literal) )))))) ;) })) }))) (expression_statement "uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);" (assignment_expression "uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3)" identifier = (call_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)" ( (pointer_expression "*(code *)PTR_AcquireAuthenticCacheView_003f9eec" * (cast_expression "(code *)PTR_AcquireAuthenticCacheView_003f9eec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;) (expression_statement "puVar3 = PTR_UINT_003f98e4;" (assignment_expression "puVar3 = PTR_UINT_003f98e4" identifier = identifier) ;) (expression_statement "puVar28 = PTR_LAB_003f98e0;" (assignment_expression "puVar28 = PTR_LAB_003f98e0" identifier = identifier) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }" if (parenthesized_expression "(0 < param_1[7])" ( (binary_expression "0 < param_1[7]" number_literal < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) (compound_statement "{\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a48" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);" (assignment_expression "dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80)" identifier = (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a80)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a80)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a80" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);" do (compound_statement "{\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      }" { (expression_statement "iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }" if (parenthesized_expression "((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0))" ( (binary_expression "(bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)" ( (comma_expression "iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0" (assignment_expression "iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,0,uVar27,param_1[6],1,param_3)" ( identifier , number_literal , identifier , (subscript_expression "param_1[6]" identifier [ number_literal ]) , number_literal , identifier )))) , (comma_expression "puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0" (assignment_expression "puVar2 = PTR_LAB_003f98e0" identifier = identifier) , (binary_expression "iVar24 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }" { (expression_statement "puVar20 = param_2;" (assignment_expression "puVar20 = param_2" identifier = identifier) ;) (expression_statement "ppuVar4 = local_378;" (assignment_expression "ppuVar4 = local_378" identifier = identifier) ;) (do_statement "do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);" do (compound_statement "{\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          }" { (expression_statement "ppuVar15 = ppuVar4;" (assignment_expression "ppuVar15 = ppuVar4" identifier = identifier) ;) (expression_statement "puVar10 = puVar20;" (assignment_expression "puVar10 = puVar20" identifier = identifier) ;) (expression_statement "puVar22 = (undefined4 *)puVar10[1];" (assignment_expression "puVar22 = (undefined4 *)puVar10[1]" identifier = (cast_expression "(undefined4 *)puVar10[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar21 = (undefined4 *)puVar10[2];" (assignment_expression "puVar21 = (undefined4 *)puVar10[2]" identifier = (cast_expression "(undefined4 *)puVar10[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar20 = (undefined4 *)puVar10[3];" (assignment_expression "puVar20 = (undefined4 *)puVar10[3]" identifier = (cast_expression "(undefined4 *)puVar10[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[3]" identifier [ number_literal ]))) ;) (expression_statement "*ppuVar15 = (undefined4 *)*puVar10;" (assignment_expression "*ppuVar15 = (undefined4 *)*puVar10" (pointer_expression "*ppuVar15" * identifier) = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "ppuVar15[1] = puVar22;" (assignment_expression "ppuVar15[1] = puVar22" (subscript_expression "ppuVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar15[2] = puVar21;" (assignment_expression "ppuVar15[2] = puVar21" (subscript_expression "ppuVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar15[3] = puVar20;" (assignment_expression "ppuVar15[3] = puVar20" (subscript_expression "ppuVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20 = puVar10 + 4;" (assignment_expression "puVar20 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "ppuVar4 = ppuVar15 + 4;" (assignment_expression "ppuVar4 = ppuVar15 + 4" identifier = (binary_expression "ppuVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 != param_2 + 0xc4)" ( (binary_expression "puVar20 != param_2 + 0xc4" identifier != (binary_expression "param_2 + 0xc4" identifier + number_literal)) )) ;) (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar15[4] = (undefined4 *)*puVar20;" (assignment_expression "ppuVar15[4] = (undefined4 *)*puVar20" (subscript_expression "ppuVar15[4]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)*puVar20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (expression_statement "ppuVar15[5] = puVar10;" (assignment_expression "ppuVar15[5] = puVar10" (subscript_expression "ppuVar15[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar16 = param_1[6];" (assignment_expression "iVar16 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = uVar27 & 1;" (assignment_expression "uVar18 = uVar27 & 1" identifier = (binary_expression "uVar27 & 1" identifier & number_literal)) ;) (expression_statement "iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];" (assignment_expression "iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26]" identifier = (binary_expression "uVar18 * iVar16 * 0x20 + local_390[iVar26]" (binary_expression "uVar18 * iVar16 * 0x20" (binary_expression "uVar18 * iVar16" identifier * identifier) * number_literal) + (subscript_expression "local_390[iVar26]" identifier [ identifier ]))) ;) (expression_statement "iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];" (assignment_expression "iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26]" identifier = (binary_expression "(uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26]" (binary_expression "(uVar27 + 1 & 1) * iVar16 * 0x20" (binary_expression "(uVar27 + 1 & 1) * iVar16" (parenthesized_expression "(uVar27 + 1 & 1)" ( (binary_expression "uVar27 + 1 & 1" (binary_expression "uVar27 + 1" identifier + number_literal) & number_literal) )) * identifier) * number_literal) + (subscript_expression "local_390[iVar26]" identifier [ identifier ]))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (uVar18 != 0) {\n            iVar11 = -1;\n          }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar11 = -1;\n          }" { (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) })) (if_statement "if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);" do (compound_statement "{\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            }" { (expression_statement "iVar14 = iVar25;" (assignment_expression "iVar14 = iVar25" identifier = identifier) ;) (if_statement "if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar14 = (iVar16 + -1) - iVar25;\n              }" { (expression_statement "iVar14 = (iVar16 + -1) - iVar25;" (assignment_expression "iVar14 = (iVar16 + -1) - iVar25" identifier = (binary_expression "(iVar16 + -1) - iVar25" (parenthesized_expression "(iVar16 + -1)" ( (binary_expression "iVar16 + -1" identifier + number_literal) )) - identifier)) ;) })) (expression_statement "iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;" (assignment_expression "iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24" identifier = (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier)) ;) (if_statement "if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }" { (expression_statement "iVar17 = param_1[0xb4];" (assignment_expression "iVar17 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);" statement_identifier : (expression_statement "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);" (assignment_expression "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 8) * 4" identifier + (binary_expression "*(int *)(iVar17 + 8) * 4" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;)) (expression_statement "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);" (assignment_expression "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x14) * 4" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);" (assignment_expression "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x20) * 4" (pointer_expression "*(int *)(iVar17 + 0x20)" * (cast_expression "(int *)(iVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar17 + 0x34) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x34) == 0" (pointer_expression "*(int *)(iVar17 + 0x34)" * (cast_expression "(int *)(iVar17 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x34)" ( (binary_expression "iVar17 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" else (compound_statement "{\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" { (expression_statement "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" * (cast_expression "(int *)(iVar17 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) }))) }) (else_clause "else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" else (compound_statement "{\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" { (expression_statement "iVar17 = param_1[0xb4];" (assignment_expression "iVar17 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (if_statement "if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;" if (parenthesized_expression "((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)))" ( (binary_expression "(*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (parenthesized_expression "(*(int *)(iVar17 + 0x34) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x34) == 0" (pointer_expression "*(int *)(iVar17 + 0x34)" * (cast_expression "(int *)(iVar17 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x34)" ( (binary_expression "iVar17 + 0x34" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (comma_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" * (cast_expression "(int *)(iVar17 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) , (binary_expression "fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier == (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) )))))) ))) )) (goto_statement "goto LAB_0016cdf8;" goto statement_identifier ;)) (expression_statement "dVar33 = (double)fVar36 * dVar34;" (assignment_expression "dVar33 = (double)fVar36 * dVar34" identifier = (binary_expression "(double)fVar36 * dVar34" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;" (assignment_expression "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33" identifier = (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 8) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 8) * 4" identifier + (binary_expression "*(int *)(iVar17 + 8) * 4" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;" (assignment_expression "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33" identifier = (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x14) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x14) * 4" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;" (assignment_expression "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33" identifier = (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x20) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x20) * 4" (pointer_expression "*(int *)(iVar17 + 0x20)" * (cast_expression "(int *)(iVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" * (cast_expression "(int *)(iVar17 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar48 = (double)fVar36;" (assignment_expression "dVar48 = (double)fVar36" identifier = (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }" { (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x2a0)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x2a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x2a0)" ( (binary_expression "PTR_UINT_003f98e4 + 0x2a0" identifier + number_literal) )))))) ;) (expression_statement "pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20)" identifier = (cast_expression "(double *)(iVar5 + (iVar14 - iVar11) * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + (iVar14 - iVar11) * 0x20)" ( (binary_expression "iVar5 + (iVar14 - iVar11) * 0x20" identifier + (binary_expression "(iVar14 - iVar11) * 0x20" (parenthesized_expression "(iVar14 - iVar11)" ( (binary_expression "iVar14 - iVar11" identifier - identifier) )) * number_literal)) )))) ;) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" identifier = (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" identifier * (pointer_expression "*pdVar7" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" identifier = (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" identifier * (subscript_expression "pdVar7[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" identifier = (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" identifier * (subscript_expression "pdVar7[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" { (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" identifier = (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" identifier * (subscript_expression "pdVar7[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) })) (if_statement "if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }" if (parenthesized_expression "(0 < (int)uVar27)" ( (binary_expression "0 < (int)uVar27" number_literal < (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }" { (if_statement "if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }" if (parenthesized_expression "(iVar25 < param_1[6] + -1)" ( (binary_expression "iVar25 < param_1[6] + -1" identifier < (binary_expression "param_1[6] + -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) )) (compound_statement "{\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }" { (expression_statement "pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20)" identifier = (cast_expression "(double *)(iVar26 + (iVar11 + iVar14) * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + (iVar11 + iVar14) * 0x20)" ( (binary_expression "iVar26 + (iVar11 + iVar14) * 0x20" identifier + (binary_expression "(iVar11 + iVar14) * 0x20" (parenthesized_expression "(iVar11 + iVar14)" ( (binary_expression "iVar11 + iVar14" identifier + identifier) )) * number_literal)) )))) ;) (expression_statement "dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *pdVar7 * dVar44 + dVar40;" (assignment_expression "dVar40 = *pdVar7 * dVar44 + dVar40" identifier = (binary_expression "*pdVar7 * dVar44 + dVar40" (binary_expression "*pdVar7 * dVar44" (pointer_expression "*pdVar7" * identifier) * identifier) + identifier)) ;) (expression_statement "dVar37 = pdVar7[1] * dVar44 + dVar37;" (assignment_expression "dVar37 = pdVar7[1] * dVar44 + dVar37" identifier = (binary_expression "pdVar7[1] * dVar44 + dVar37" (binary_expression "pdVar7[1] * dVar44" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) * identifier) + identifier)) ;) (expression_statement "dVar33 = pdVar7[2] * dVar44 + dVar33;" (assignment_expression "dVar33 = pdVar7[2] * dVar44 + dVar33" identifier = (binary_expression "pdVar7[2] * dVar44 + dVar33" (binary_expression "pdVar7[2] * dVar44" (subscript_expression "pdVar7[2]" identifier [ number_literal ]) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }" { (expression_statement "dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;" (assignment_expression "dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48" identifier = (binary_expression "pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48" (binary_expression "pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (subscript_expression "pdVar7[3]" identifier [ number_literal ]) * (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) + identifier)) ;) })) })) (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xc88)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xc88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0xc88)" ( (binary_expression "PTR_UINT_003f98e4 + -0xc88" identifier + number_literal) )))))) ;) (expression_statement "pdVar7 = (double *)(iVar26 + iVar14 * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + iVar14 * 0x20)" identifier = (cast_expression "(double *)(iVar26 + iVar14 * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + iVar14 * 0x20)" ( (binary_expression "iVar26 + iVar14 * 0x20" identifier + (binary_expression "iVar14 * 0x20" identifier * number_literal)) )))) ;) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" identifier = (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" identifier * (pointer_expression "*pdVar7" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" identifier = (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" identifier * (subscript_expression "pdVar7[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" identifier = (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" identifier * (subscript_expression "pdVar7[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" { (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" identifier = (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" identifier * (subscript_expression "pdVar7[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) (if_statement "if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }" { (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" identifier = (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" identifier * (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xcc0)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xcc0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0xcc0)" ( (binary_expression "PTR_UINT_003f98e4 + -0xcc0" identifier + number_literal) )))))) ;) (expression_statement "pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20)" identifier = (cast_expression "(double *)(iVar26 + (iVar14 - iVar11) * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + (iVar14 - iVar11) * 0x20)" ( (binary_expression "iVar26 + (iVar14 - iVar11) * 0x20" identifier + (binary_expression "(iVar14 - iVar11) * 0x20" (parenthesized_expression "(iVar14 - iVar11)" ( (binary_expression "iVar14 - iVar11" identifier - identifier) )) * number_literal)) )))) ;) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" identifier = (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" * (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" identifier = (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" identifier * (pointer_expression "*pdVar7" * identifier)) * identifier) + identifier)) ;) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" identifier = (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" identifier * (subscript_expression "pdVar7[1]" identifier [ number_literal ])) * identifier) + identifier)) ;) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" identifier = (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" identifier * (subscript_expression "pdVar7[2]" identifier [ number_literal ])) * identifier) + identifier)) ;) (if_statement "if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }" { (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" identifier = (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" identifier * (subscript_expression "pdVar7[3]" identifier [ number_literal ])) * identifier) + identifier)) ;) })) })) })) (if_statement "if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar40 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar40 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar36 = (float)dVar40;\n                }" { (expression_statement "fVar36 = (float)dVar40;" (assignment_expression "fVar36 = (float)dVar40" identifier = (cast_expression "(float)dVar40" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar36 = 0.0;\n              }" else (compound_statement "{\n                fVar36 = 0.0;\n              }" { (expression_statement "fVar36 = 0.0;" (assignment_expression "fVar36 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar40 = (double)fVar36;" (assignment_expression "dVar40 = (double)fVar36" identifier = (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar37)" ( (binary_expression "0.0 <= dVar37" number_literal <= identifier) )) (compound_statement "{\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar37 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar37 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar39 = (float)dVar37;\n                }" { (expression_statement "fVar39 = (float)dVar37;" (assignment_expression "fVar39 = (float)dVar37" identifier = (cast_expression "(float)dVar37" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar39 = 0.0;\n              }" else (compound_statement "{\n                fVar39 = 0.0;\n              }" { (expression_statement "fVar39 = 0.0;" (assignment_expression "fVar39 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar37 = (double)fVar39;" (assignment_expression "dVar37 = (double)fVar39" identifier = (cast_expression "(double)fVar39" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }" if (parenthesized_expression "(0.0 <= dVar33)" ( (binary_expression "0.0 <= dVar33" number_literal <= identifier) )) (compound_statement "{\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" { (if_statement "if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" if (parenthesized_expression "(dVar33 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar33 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                  fVar35 = (float)dVar33;\n                }" { (expression_statement "fVar35 = (float)dVar33;" (assignment_expression "fVar35 = (float)dVar33" identifier = (cast_expression "(float)dVar33" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" else (compound_statement "{\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" { (expression_statement "fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                fVar35 = 0.0;\n              }" else (compound_statement "{\n                fVar35 = 0.0;\n              }" { (expression_statement "fVar35 = 0.0;" (assignment_expression "fVar35 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar33 = (double)fVar35;" (assignment_expression "dVar33 = (double)fVar35" identifier = (cast_expression "(double)fVar35" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }" { (if_statement "if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }" if (parenthesized_expression "(0.0 <= dVar48)" ( (binary_expression "0.0 <= dVar48" number_literal <= identifier) )) (compound_statement "{\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }" { (if_statement "if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" if (parenthesized_expression "(dVar48 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar48 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                    fVar42 = (float)dVar48;\n                  }" { (expression_statement "fVar42 = (float)dVar48;" (assignment_expression "fVar42 = (float)dVar48" identifier = (cast_expression "(float)dVar48" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" else (compound_statement "{\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" { (expression_statement "fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                  fVar42 = 0.0;\n                }" else (compound_statement "{\n                  fVar42 = 0.0;\n                }" { (expression_statement "fVar42 = 0.0;" (assignment_expression "fVar42 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar48 = (double)fVar42;" (assignment_expression "dVar48 = (double)fVar42" identifier = (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier)) ;) })) (if_statement "if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar36)" ( (binary_expression "0.0 <= fVar36" number_literal <= identifier) )) (compound_statement "{\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }" if (parenthesized_expression "(fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar36))" ( (call_expression "NAN(fVar36)" identifier (argument_list "(fVar36)" ( identifier ))) )) (compound_statement "{\n                    uVar12 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" else (if_statement "if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }" { (expression_statement "dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar12 = (int)dVar44 & 0xff;" (assignment_expression "uVar12 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar12 = 0xff;\n                    }" else (compound_statement "{\n                      uVar12 = 0xff;\n                    }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar12 = 0;\n                  }" else (compound_statement "{\n                    uVar12 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))))) })) }) (else_clause "else {\n                uVar12 = 0;\n              }" else (compound_statement "{\n                uVar12 = 0;\n              }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar39)" ( (binary_expression "0.0 <= fVar39" number_literal <= identifier) )) (compound_statement "{\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }" { (if_statement "if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }" if (parenthesized_expression "(fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar39))" ( (call_expression "NAN(fVar39)" identifier (argument_list "(fVar39)" ( identifier ))) )) (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" else (if_statement "if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar39)" ( (binary_expression "0.0 < fVar39" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar39" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }" { (expression_statement "dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar39" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar8 = (int)dVar44 & 0xff;" (assignment_expression "uVar8 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar8 = 0xff;\n                    }" else (compound_statement "{\n                      uVar8 = 0xff;\n                    }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar8 = 0;\n                  }" else (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                  uVar8 = 0xff;\n                }" else (compound_statement "{\n                  uVar8 = 0xff;\n                }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                uVar8 = 0;\n              }" else (compound_statement "{\n                uVar8 = 0;\n              }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }" if (parenthesized_expression "(0.0 <= fVar35)" ( (binary_expression "0.0 <= fVar35" number_literal <= identifier) )) (compound_statement "{\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }" { (if_statement "if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }" if (parenthesized_expression "(fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }" { (if_statement "if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(NAN(fVar35))" ( (call_expression "NAN(fVar35)" identifier (argument_list "(fVar35)" ( identifier ))) )) (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" else (if_statement "if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(0.0 < fVar35)" ( (binary_expression "0.0 < fVar35" number_literal < identifier) )) (compound_statement "{\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar35" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }" { (expression_statement "dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar35" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar44 & 0xff;" (assignment_expression "uVar13 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar13 = 0xff;\n                    }" else (compound_statement "{\n                      uVar13 = 0xff;\n                    }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    uVar13 = 0;\n                  }" else (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                  uVar13 = 0xff;\n                }" else (compound_statement "{\n                  uVar13 = 0xff;\n                }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                uVar13 = 0;\n              }" else (compound_statement "{\n                uVar13 = 0;\n              }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;" (assignment_expression "uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2" identifier = (binary_expression "(uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2" (binary_expression "(uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6" (binary_expression "(uVar13 >> 2) << 0xc" (parenthesized_expression "(uVar13 >> 2)" ( (binary_expression "uVar13 >> 2" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar8 >> 2) << 6" (parenthesized_expression "(uVar8 >> 2)" ( (binary_expression "uVar8 >> 2" identifier >> number_literal) )) << number_literal)) | (binary_expression "uVar12 >> 2" identifier >> number_literal))) ;) (if_statement "if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }" { (if_statement "if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }" if (parenthesized_expression "(0.0 <= dVar48)" ( (binary_expression "0.0 <= dVar48" number_literal <= identifier) )) (compound_statement "{\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }" { (if_statement "if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }" if (parenthesized_expression "(dVar48 < *(double *)(puVar28 + 0x4a48))" ( (binary_expression "dVar48 < *(double *)(puVar28 + 0x4a48)" identifier < (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) ))))) )) (compound_statement "{\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }" { (expression_statement "fVar42 = (float)dVar48;" (assignment_expression "fVar42 = (float)dVar48" identifier = (cast_expression "(float)dVar48" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\n                      uVar8 = 0;\n                    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" else (if_statement "if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }" { (if_statement "if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }" if (parenthesized_expression "((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }" { (expression_statement "dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar8 = (int)dVar44 & 0xff;" (assignment_expression "uVar8 = (int)dVar44 & 0xff" identifier = (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                        uVar8 = 0xff;\n                      }" else (compound_statement "{\n                        uVar8 = 0xff;\n                      }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      uVar8 = 0;\n                    }" else (compound_statement "{\n                      uVar8 = 0;\n                    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                    uVar8 = 0xff;\n                  }" else (compound_statement "{\n                    uVar8 = 0xff;\n                  }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                  uVar8 = 0;\n                }" else (compound_statement "{\n                  uVar8 = 0;\n                }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar12 = uVar12 | (uVar8 >> 2) << 0x12;" (assignment_expression "uVar12 = uVar12 | (uVar8 >> 2) << 0x12" identifier = (binary_expression "uVar12 | (uVar8 >> 2) << 0x12" identifier | (binary_expression "(uVar8 >> 2) << 0x12" (parenthesized_expression "(uVar8 >> 2)" ( (binary_expression "uVar8 >> 2" identifier >> number_literal) )) << number_literal))) ;) })) (expression_statement "iVar16 = uVar12 * 4;" (assignment_expression "iVar16 = uVar12 * 4" identifier = (binary_expression "uVar12 * 4" identifier * number_literal)) ;) (if_statement "if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }" if (parenthesized_expression "(*(int *)(local_310 + iVar16) < 0)" ( (binary_expression "*(int *)(local_310 + iVar16) < 0" (pointer_expression "*(int *)(local_310 + iVar16)" * (cast_expression "(int *)(local_310 + iVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_310 + iVar16)" ( (binary_expression "local_310 + iVar16" identifier + identifier) )))) < number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }" { (expression_statement "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "fVar42 = fVar36;" (assignment_expression "fVar42 = fVar36" identifier = identifier) ;) (if_statement "if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }" if (parenthesized_expression "(fVar43 <= fVar36)" ( (binary_expression "fVar43 <= fVar36" identifier <= identifier) )) (compound_statement "{\n                  fVar42 = fVar43;\n                }" { (expression_statement "fVar42 = fVar43;" (assignment_expression "fVar42 = fVar43" identifier = identifier) ;) })) (expression_statement "fVar47 = fVar39;" (assignment_expression "fVar47 = fVar39" identifier = identifier) ;) (if_statement "if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }" if (parenthesized_expression "(fVar43 <= fVar39)" ( (binary_expression "fVar43 <= fVar39" identifier <= identifier) )) (compound_statement "{\n                  fVar47 = fVar43;\n                }" { (expression_statement "fVar47 = fVar43;" (assignment_expression "fVar47 = fVar43" identifier = identifier) ;) })) (if_statement "if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }" if (parenthesized_expression "(fVar35 < fVar43)" ( (binary_expression "fVar35 < fVar43" identifier < identifier) )) (compound_statement "{\n                  fVar43 = fVar35;\n                }" { (expression_statement "fVar43 = fVar35;" (assignment_expression "fVar43 = fVar35" identifier = identifier) ;) })) (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (expression_statement "dVar44 = *(double *)(puVar3 + -0x2a80);" (assignment_expression "dVar44 = *(double *)(puVar3 + -0x2a80)" identifier = (pointer_expression "*(double *)(puVar3 + -0x2a80)" * (cast_expression "(double *)(puVar3 + -0x2a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x2a80)" ( (binary_expression "puVar3 + -0x2a80" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);" (assignment_expression "dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78)" identifier = (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = local_378[0];" (assignment_expression "puVar20 = local_378[0]" identifier = (subscript_expression "local_378[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));" do (compound_statement "{\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" if (parenthesized_expression "((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36))))" ( (binary_expression "(0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))" (parenthesized_expression "(0.0 <= fVar36)" ( (binary_expression "0.0 <= fVar36" number_literal <= identifier) )) && (parenthesized_expression "((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))" ( (parenthesized_expression "(*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36))" ( (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)" (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36" (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) )))) <= identifier) || (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) ))) )) ))) )) (compound_statement "{\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" { (if_statement "if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }" if (parenthesized_expression "((double)fVar42 / dVar44 < dVar46)" ( (binary_expression "(double)fVar42 / dVar44 < dVar46" (binary_expression "(double)fVar42 / dVar44" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }" { (expression_statement "dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar42 / dVar44" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar8 = (int)dVar38 & 0xff;" (assignment_expression "uVar8 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                      uVar8 = 0xff;\n                    }" else (compound_statement "{\n                      uVar8 = 0xff;\n                    }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) }))) })) (if_statement "if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" if (parenthesized_expression "(0.0 <= fVar39)" ( (binary_expression "0.0 <= fVar39" number_literal <= identifier) )) (compound_statement "{\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }" { (if_statement "if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" if (parenthesized_expression "(fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }" { (if_statement "if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" if (parenthesized_expression "(NAN(fVar39))" ( (call_expression "NAN(fVar39)" identifier (argument_list "(fVar39)" ( identifier ))) )) (compound_statement "{\n                        uVar13 = 0;\n                      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" else (compound_statement "{\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar39) goto LAB_0016d63c;" if (parenthesized_expression "(0.0 < fVar39)" ( (binary_expression "0.0 < fVar39" number_literal < identifier) )) (goto_statement "goto LAB_0016d63c;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" else (compound_statement "{\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" { (labeled_statement "LAB_0016d63c:\n                      uVar13 = 0xff;" statement_identifier : (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;)) (if_statement "if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }" if (parenthesized_expression "((double)fVar47 / dVar44 < dVar46)" ( (binary_expression "(double)fVar47 / dVar44 < dVar46" (binary_expression "(double)fVar47 / dVar44" (cast_expression "(double)fVar47" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }" { (expression_statement "dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar47 / dVar44" (cast_expression "(double)fVar47" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar38 & 0xff;" (assignment_expression "uVar13 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) })) }))) }) (else_clause "else {\n                    uVar13 = 0;\n                  }" else (compound_statement "{\n                    uVar13 = 0;\n                  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (if_statement "if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }" if (parenthesized_expression "(0.0 <= fVar35)" ( (binary_expression "0.0 <= fVar35" number_literal <= identifier) )) (compound_statement "{\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }" { (if_statement "if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" if (parenthesized_expression "(fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" ( (binary_expression "fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier < (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) )) (compound_statement "{\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }" { (if_statement "if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" if (parenthesized_expression "(NAN(fVar35))" ( (call_expression "NAN(fVar35)" identifier (argument_list "(fVar35)" ( identifier ))) )) (compound_statement "{\n                        uVar9 = 0;\n                      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" else (compound_statement "{\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" { (if_statement "if (0.0 < fVar35) goto LAB_0016d6f4;" if (parenthesized_expression "(0.0 < fVar35)" ( (binary_expression "0.0 < fVar35" number_literal < identifier) )) (goto_statement "goto LAB_0016d6f4;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" else (compound_statement "{\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" { (labeled_statement "LAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }" statement_identifier : (if_statement "if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }" if (parenthesized_expression "((double)fVar43 / dVar44 < dVar46)" ( (binary_expression "(double)fVar43 / dVar44 < dVar46" (binary_expression "(double)fVar43 / dVar44" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < identifier) )) (compound_statement "{\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }" { (expression_statement "dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar43 / dVar44" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar9 = (int)dVar38 & 0xff;" (assignment_expression "uVar9 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                        uVar9 = 0xff;\n                      }" else (compound_statement "{\n                        uVar9 = 0xff;\n                      }" { (expression_statement "uVar9 = 0xff;" (assignment_expression "uVar9 = 0xff" identifier = number_literal) ;) })))) }))) }) (else_clause "else {\n                    uVar9 = 0;\n                  }" else (compound_statement "{\n                    uVar9 = 0;\n                  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;" (assignment_expression "uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U" identifier = (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U" (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1" (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2" (parenthesized_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U)" ( (binary_expression "(int)uVar9 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar9 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal) | (binary_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1" (parenthesized_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U)" ( (binary_expression "(int)uVar13 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal)) | (binary_expression "(int)uVar8 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar8 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal))) ;) (if_statement "if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }" { (if_statement "if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }" if (parenthesized_expression "(0.0 <= dVar48)" ( (binary_expression "0.0 <= dVar48" number_literal <= identifier) )) (compound_statement "{\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }" { (if_statement "if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }" if (parenthesized_expression "(dVar48 < dVar31)" ( (binary_expression "dVar48 < dVar31" identifier < identifier) )) (compound_statement "{\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }" { (expression_statement "fVar45 = (float)dVar48;" (assignment_expression "fVar45 = (float)dVar48" identifier = (cast_expression "(float)dVar48" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" if (parenthesized_expression "(NAN(fVar45))" ( (call_expression "NAN(fVar45)" identifier (argument_list "(fVar45)" ( identifier ))) )) (compound_statement "{\n                          uVar13 = 0;\n                        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" else (if_statement "if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" if (parenthesized_expression "(0.0 < fVar45)" ( (binary_expression "0.0 < fVar45" number_literal < identifier) )) (compound_statement "{\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }" { (if_statement "if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }" if (parenthesized_expression "((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78))" ( (binary_expression "(double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar45 / dVar32" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" ( (binary_expression "PTR_UINT_003f98e4 + -0x2a78" identifier + number_literal) ))))) )) (compound_statement "{\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }" { (expression_statement "dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" identifier = (binary_expression "(double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar45 / dVar32" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43d0" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" if (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" ( (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" { (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (int)dVar38 & 0xff;" (assignment_expression "uVar13 = (int)dVar38 & 0xff" identifier = (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) }) (else_clause "else {\n                            uVar13 = 0xff;\n                          }" else (compound_statement "{\n                            uVar13 = 0xff;\n                          }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                          uVar13 = 0;\n                        }" else (compound_statement "{\n                          uVar13 = 0;\n                        }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))))) }) (else_clause "else {\n                        uVar13 = 0xff;\n                      }" else (compound_statement "{\n                        uVar13 = 0xff;\n                      }" { (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      uVar13 = 0;\n                    }" else (compound_statement "{\n                      uVar13 = 0;\n                    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;" (assignment_expression "uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" identifier = (binary_expression "uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" identifier | (binary_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" (parenthesized_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U)" ( (binary_expression "(int)uVar13 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) ))) & number_literal) )) << number_literal))) ;) })) (expression_statement "puVar10 = (undefined4 *)puVar20[uVar8 + 1];" (assignment_expression "puVar10 = (undefined4 *)puVar20[uVar8 + 1]" identifier = (cast_expression "(undefined4 *)puVar20[uVar8 + 1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[uVar8 + 1]" identifier [ (binary_expression "uVar8 + 1" identifier + number_literal) ]))) ;) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0))" ( (binary_expression "(puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0)" (parenthesized_expression "(puVar10 != (undefined4 *)0x0)" ( (binary_expression "puVar10 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar20 = puVar10, uVar12 != 0)" ( (comma_expression "puVar20 = puVar10, uVar12 != 0" (assignment_expression "puVar20 = puVar10" identifier = identifier) , (binary_expression "uVar12 != 0" identifier != number_literal)) ))) )) ;) (expression_statement "local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);" (assignment_expression "local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" identifier = (pointer_expression "*(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" * (cast_expression "(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" ( (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88" identifier + number_literal) ))))) ;) (expression_statement "local_360 = dVar40;" (assignment_expression "local_360 = dVar40" identifier = identifier) ;) (expression_statement "local_358 = dVar37;" (assignment_expression "local_358 = dVar37" identifier = identifier) ;) (expression_statement "local_350 = dVar33;" (assignment_expression "local_350 = dVar33" identifier = identifier) ;) (expression_statement "local_348 = dVar48;" (assignment_expression "local_348 = dVar48" identifier = identifier) ;) (expression_statement "FUN_00165e20(param_1,local_378,*puVar20);" (call_expression "FUN_00165e20(param_1,local_378,*puVar20)" identifier (argument_list "(param_1,local_378,*puVar20)" ( identifier , identifier , (pointer_expression "*puVar20" * identifier) ))) ;) (expression_statement "*(undefined4 *)(local_310 + iVar16) = local_320;" (assignment_expression "*(undefined4 *)(local_310 + iVar16) = local_320" (pointer_expression "*(undefined4 *)(local_310 + iVar16)" * (cast_expression "(undefined4 *)(local_310 + iVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_310 + iVar16)" ( (binary_expression "local_310 + iVar16" identifier + identifier) )))) = identifier) ;) })) (expression_statement "iVar16 = *(int *)(local_310 + iVar16);" (assignment_expression "iVar16 = *(int *)(local_310 + iVar16)" identifier = (pointer_expression "*(int *)(local_310 + iVar16)" * (cast_expression "(int *)(local_310 + iVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_310 + iVar16)" ( (binary_expression "local_310 + iVar16" identifier + identifier) ))))) ;) (if_statement "if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }" if (parenthesized_expression "((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0))" ( (binary_expression "(*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)" (parenthesized_expression "(*param_1 == 2)" ( (binary_expression "*param_1 == 2" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(param_1[0xb4] + 0x40) != 0)" ( (binary_expression "*(int *)(param_1[0xb4] + 0x40) != 0" (pointer_expression "*(int *)(param_1[0xb4] + 0x40)" * (cast_expression "(int *)(param_1[0xb4] + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x40)" ( (binary_expression "param_1[0xb4] + 0x40" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }" { (expression_statement "dVar44 = (double)iVar16;" (assignment_expression "dVar44 = (double)iVar16" identifier = (cast_expression "(double)iVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(param_1[0xb4] + 0x44) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x44)" * (cast_expression "(int *)(param_1[0xb4] + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x44)" ( (binary_expression "param_1[0xb4] + 0x44" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dVar44" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }" if (parenthesized_expression "(*(int *)(local_88 + 0x10) == 0)" ( (binary_expression "*(int *)(local_88 + 0x10) == 0" (pointer_expression "*(int *)(local_88 + 0x10)" * (cast_expression "(int *)(local_88 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x10)" ( (binary_expression "local_88 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }" { (expression_statement "iVar17 = iVar16 * 0x58;" (assignment_expression "iVar17 = iVar16 * 0x58" identifier = (binary_expression "iVar16 * 0x58" identifier * number_literal)) ;) (expression_statement "iVar19 = param_1[0xb4];" (assignment_expression "iVar19 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(iVar19 + 8) * 4" (pointer_expression "*(int *)(iVar19 + 8)" * (cast_expression "(int *)(iVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x28)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x28)" ( (binary_expression "param_1[10] + iVar17 + 0x28" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(iVar19 + 0x14) * 4" (pointer_expression "*(int *)(iVar19 + 0x14)" * (cast_expression "(int *)(iVar19 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x14)" ( (binary_expression "iVar19 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x30)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x30)" ( (binary_expression "param_1[10] + iVar17 + 0x30" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(param_1[0xb4] + 0x20) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x20)" * (cast_expression "(int *)(param_1[0xb4] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x20)" ( (binary_expression "param_1[0xb4] + 0x20" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x38)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x38)" ( (binary_expression "param_1[10] + iVar17 + 0x38" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) (if_statement "if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }" if (parenthesized_expression "((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0))" ( (binary_expression "(local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)" (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(param_1[0xb4] + 0x34) != 0)" ( (binary_expression "*(int *)(param_1[0xb4] + 0x34) != 0" (pointer_expression "*(int *)(param_1[0xb4] + 0x34)" * (cast_expression "(int *)(param_1[0xb4] + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x34)" ( (binary_expression "param_1[0xb4] + 0x34" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }" { (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" * (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" ( (binary_expression "param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 +\n                            iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" identifier [ number_literal ]) * number_literal) * identifier) + identifier) + (binary_expression "*(int *)(param_1[0xb4] + 0x38) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x38)" * (cast_expression "(int *)(param_1[0xb4] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb4] + 0x38)" ( (binary_expression "param_1[0xb4] + 0x38" (subscript_expression "param_1[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x48)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x48)" * (cast_expression "(double *)(param_1[10] + iVar17 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + iVar17 + 0x48)" ( (binary_expression "param_1[10] + iVar17 + 0x48" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier) + number_literal) )))))) ;) })) })) (expression_statement "iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);" (assignment_expression "iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n                bVar1 = false;\n              }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar1 = false;\n              }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (expression_statement "iVar16 = iVar16 * 0x58 + param_1[10];" (assignment_expression "iVar16 = iVar16 * 0x58 + param_1[10]" identifier = (binary_expression "iVar16 * 0x58 + param_1[10]" (binary_expression "iVar16 * 0x58" identifier * number_literal) + (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (if_statement "if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" if (parenthesized_expression "((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48)))" ( (binary_expression "(local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))" (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) || (parenthesized_expression "(dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))" ( (comma_expression "dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48)" (assignment_expression "dVar44 = *(double *)(iVar16 + 0x48)" identifier = (pointer_expression "*(double *)(iVar16 + 0x48)" * (cast_expression "(double *)(iVar16 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x48)" ( (binary_expression "iVar16 + 0x48" identifier + number_literal) ))))) , (binary_expression "dVar44 == *(double *)(puVar28 + 0x4a48)" identifier == (pointer_expression "*(double *)(puVar28 + 0x4a48)" * (cast_expression "(double *)(puVar28 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x4a48)" ( (binary_expression "puVar28 + 0x4a48" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }" { (expression_statement "dVar41 = *(double *)(iVar16 + 0x28);" (assignment_expression "dVar41 = *(double *)(iVar16 + 0x28)" identifier = (pointer_expression "*(double *)(iVar16 + 0x28)" * (cast_expression "(double *)(iVar16 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x28)" ( (binary_expression "iVar16 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(iVar16 + 0x30);" (assignment_expression "dVar38 = *(double *)(iVar16 + 0x30)" identifier = (pointer_expression "*(double *)(iVar16 + 0x30)" * (cast_expression "(double *)(iVar16 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x30)" ( (binary_expression "iVar16 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(iVar16 + 0x38);" (assignment_expression "dVar46 = *(double *)(iVar16 + 0x38)" identifier = (pointer_expression "*(double *)(iVar16 + 0x38)" * (cast_expression "(double *)(iVar16 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x38)" ( (binary_expression "iVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(iVar16 + 0x48);" (assignment_expression "dVar44 = *(double *)(iVar16 + 0x48)" identifier = (pointer_expression "*(double *)(iVar16 + 0x48)" * (cast_expression "(double *)(iVar16 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x48)" ( (binary_expression "iVar16 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" else (compound_statement "{\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" { (expression_statement "dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);" (assignment_expression "dVar46 = dVar44 * *(double *)(puVar2 + 0x4410)" identifier = (binary_expression "dVar44 * *(double *)(puVar2 + 0x4410)" identifier * (pointer_expression "*(double *)(puVar2 + 0x4410)" * (cast_expression "(double *)(puVar2 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4410)" ( (binary_expression "puVar2 + 0x4410" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dVar46 * *(double *)(iVar16 + 0x28);" (assignment_expression "dVar41 = dVar46 * *(double *)(iVar16 + 0x28)" identifier = (binary_expression "dVar46 * *(double *)(iVar16 + 0x28)" identifier * (pointer_expression "*(double *)(iVar16 + 0x28)" * (cast_expression "(double *)(iVar16 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x28)" ( (binary_expression "iVar16 + 0x28" identifier + number_literal) )))))) ;) (expression_statement "dVar38 = dVar46 * *(double *)(iVar16 + 0x30);" (assignment_expression "dVar38 = dVar46 * *(double *)(iVar16 + 0x30)" identifier = (binary_expression "dVar46 * *(double *)(iVar16 + 0x30)" identifier * (pointer_expression "*(double *)(iVar16 + 0x30)" * (cast_expression "(double *)(iVar16 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x30)" ( (binary_expression "iVar16 + 0x30" identifier + number_literal) )))))) ;) (expression_statement "dVar46 = dVar46 * *(double *)(iVar16 + 0x38);" (assignment_expression "dVar46 = dVar46 * *(double *)(iVar16 + 0x38)" identifier = (binary_expression "dVar46 * *(double *)(iVar16 + 0x38)" identifier * (pointer_expression "*(double *)(iVar16 + 0x38)" * (cast_expression "(double *)(iVar16 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x38)" ( (binary_expression "iVar16 + 0x38" identifier + number_literal) )))))) ;) }))) (expression_statement "pdVar7 = (double *)(iVar5 + iVar14 * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar5 + iVar14 * 0x20)" identifier = (cast_expression "(double *)(iVar5 + iVar14 * 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar14 * 0x20)" ( (binary_expression "iVar5 + iVar14 * 0x20" identifier + (binary_expression "iVar14 * 0x20" identifier * number_literal)) )))) ;) (expression_statement "*pdVar7 = dVar40 - dVar41;" (assignment_expression "*pdVar7 = dVar40 - dVar41" (pointer_expression "*pdVar7" * identifier) = (binary_expression "dVar40 - dVar41" identifier - identifier)) ;) (expression_statement "pdVar7[1] = dVar37 - dVar38;" (assignment_expression "pdVar7[1] = dVar37 - dVar38" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) = (binary_expression "dVar37 - dVar38" identifier - identifier)) ;) (expression_statement "pdVar7[2] = dVar33 - dVar46;" (assignment_expression "pdVar7[2] = dVar33 - dVar46" (subscript_expression "pdVar7[2]" identifier [ number_literal ]) = (binary_expression "dVar33 - dVar46" identifier - identifier)) ;) (if_statement "if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }" if (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) )) (compound_statement "{\n                pdVar7[3] = dVar48 - dVar44;\n              }" { (expression_statement "pdVar7[3] = dVar48 - dVar44;" (assignment_expression "pdVar7[3] = dVar48 - dVar44" (subscript_expression "pdVar7[3]" identifier [ number_literal ]) = (binary_expression "dVar48 - dVar44" identifier - identifier)) ;) })) (if_statement "if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }" if (parenthesized_expression "((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0))" ( (binary_expression "(param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)" (parenthesized_expression "(param_1[0xca] != 0)" ( (binary_expression "param_1[0xca] != 0" (subscript_expression "param_1[0xca]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)" ( (comma_expression "iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0" (assignment_expression "iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" * (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" ( identifier , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc" identifier + number_literal) , (binary_expression "(int)uVar27 >> 0x1f" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , identifier , number_literal , (subscript_expression "param_1[7]" identifier [ number_literal ]) )))) , (binary_expression "iVar16 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                bVar1 = false;\n              }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = param_1[6];" (assignment_expression "iVar16 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(iVar25 < iVar16)" ( (binary_expression "iVar25 < iVar16" identifier < identifier) )) ;) })) }) (else_clause "else {\n          bVar1 = false;\n        }" else (compound_statement "{\n          bVar1 = false;\n        }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }))) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar27 < param_1[7])" ( (binary_expression "(int)uVar27 < param_1[7]" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);" (call_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)" ( (pointer_expression "*(code *)PTR_DestroyCacheView_003f9f0c" * (cast_expression "(code *)PTR_DestroyCacheView_003f9f0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "FUN_00166940(local_390);" (call_expression "FUN_00166940(local_390)" identifier (argument_list "(local_390)" ( identifier ))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "iVar26 = local_5c;" (assignment_expression "iVar26 = local_5c" identifier = identifier) ;) (expression_statement "puVar28 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003fa07c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" * (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);" (call_expression "(**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c55c))" ( (pointer_expression "**(code **)(puVar28 + 0x28c55c)" * (pointer_expression "*(code **)(puVar28 + 0x28c55c)" * (cast_expression "(code **)(puVar28 + 0x28c55c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c55c)" ( (binary_expression "puVar28 + 0x28c55c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4)" ( number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ad4" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc48) + 0x10f4" (pointer_expression "*(int *)(puVar28 + 0x28bc48)" * (cast_expression "(int *)(puVar28 + 0x28bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc48)" ( (binary_expression "puVar28 + 0x28bc48" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }" { (expression_statement "(**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);" (call_expression "(**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c984))" ( (pointer_expression "**(code **)(puVar28 + 0x28c984)" * (pointer_expression "*(code **)(puVar28 + 0x28c984)" * (cast_expression "(code **)(puVar28 + 0x28c984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c984)" ( (binary_expression "puVar28 + 0x28c984" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" ( (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4d84" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" else (if_statement "if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" if (parenthesized_expression "(*(int *)(iVar26 + 0x14) == -0x54535255)" ( (binary_expression "*(int *)(iVar26 + 0x14) == -0x54535255" (pointer_expression "*(int *)(iVar26 + 0x14)" * (cast_expression "(int *)(iVar26 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x14)" ( (binary_expression "iVar26 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" { (expression_statement "*(undefined4 *)(iVar26 + 0x14) = 0x54535254;" (assignment_expression "*(undefined4 *)(iVar26 + 0x14) = 0x54535254" (pointer_expression "*(undefined4 *)(iVar26 + 0x14)" * (cast_expression "(undefined4 *)(iVar26 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x14)" ( (binary_expression "iVar26 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);" (assignment_expression "uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26)" identifier = (call_expression "(**(code **)(puVar28 + 0x28c33c))(iVar26)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c33c))" ( (pointer_expression "**(code **)(puVar28 + 0x28c33c)" * (pointer_expression "*(code **)(puVar28 + 0x28c33c)" * (cast_expression "(code **)(puVar28 + 0x28c33c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c33c)" ( (binary_expression "puVar28 + 0x28c33c" identifier + number_literal) ))))) )) (argument_list "(iVar26)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })))) (expression_statement "iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;" (assignment_expression "iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c" identifier = (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4d5c" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x28c984);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x28c984)" identifier = (pointer_expression "*(code **)(puVar28 + 0x28c984)" * (cast_expression "(code **)(puVar28 + 0x28c984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x28c984)" ( (binary_expression "puVar28 + 0x28c984" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);" (call_expression "(*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" ( identifier , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" * (cast_expression "(int *)(puVar28 + 0x28bc5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x28bc5c)" ( (binary_expression "puVar28 + 0x28bc5c" identifier + number_literal) )))) + number_literal) ))) ;) (do_statement "do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);" do (compound_statement "{\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  }" { (expression_statement "puVar20 = *(undefined4 **)(iVar26 + 0x60);" (assignment_expression "puVar20 = *(undefined4 **)(iVar26 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar26 + 0x60)" * (cast_expression "(undefined4 **)(iVar26 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + 0x60)" ( (binary_expression "iVar26 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = puVar20[1];" (assignment_expression "iVar24 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20)" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c254))(*puVar20)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c254)" * (pointer_expression "*(code **)(pcVar29 + 0x28c254)" * (cast_expression "(code **)(pcVar29 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c254)" ( (binary_expression "pcVar29 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(*puVar20)" ( (pointer_expression "*puVar20" * identifier) )))) ;) (expression_statement "*puVar20 = uVar6;" (assignment_expression "*puVar20 = uVar6" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "(**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));" (call_expression "(**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60))" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c254)" * (pointer_expression "*(code **)(pcVar29 + 0x28c254)" * (cast_expression "(code **)(pcVar29 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c254)" ( (binary_expression "pcVar29 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar26 + 0x60))" ( (pointer_expression "*(undefined4 *)(iVar26 + 0x60)" * (cast_expression "(undefined4 *)(iVar26 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x60)" ( (binary_expression "iVar26 + 0x60" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar26 + 0x60) = iVar24;" (assignment_expression "*(int *)(iVar26 + 0x60) = iVar24" (pointer_expression "*(int *)(iVar26 + 0x60)" * (cast_expression "(int *)(iVar26 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x60)" ( (binary_expression "iVar26 + 0x60" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) ;) (if_statement "if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }" if (parenthesized_expression "(*(int *)(iVar26 + 100) != 0)" ( (binary_expression "*(int *)(iVar26 + 100) != 0" (pointer_expression "*(int *)(iVar26 + 100)" * (cast_expression "(int *)(iVar26 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 100)" ( (binary_expression "iVar26 + 100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c62c))();" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c62c))()" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c62c))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c62c))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c62c)" * (pointer_expression "*(code **)(pcVar29 + 0x28c62c)" * (cast_expression "(code **)(pcVar29 + 0x28c62c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c62c)" ( (binary_expression "pcVar29 + 0x28c62c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar26 + 100) = uVar6;" (assignment_expression "*(undefined4 *)(iVar26 + 100) = uVar6" (pointer_expression "*(undefined4 *)(iVar26 + 100)" * (cast_expression "(undefined4 *)(iVar26 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 100)" ( (binary_expression "iVar26 + 100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0))" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0))" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c724))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c724)" * (pointer_expression "*(code **)(pcVar29 + 0x28c724)" * (cast_expression "(code **)(pcVar29 + 0x28c724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c724)" ( (binary_expression "pcVar29 + 0x28c724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar26 + 0x2f0))" ( (pointer_expression "*(undefined4 *)(iVar26 + 0x2f0)" * (cast_expression "(undefined4 *)(iVar26 + 0x2f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x2f0)" ( (binary_expression "iVar26 + 0x2f0" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar26 + 0x2f0) = uVar6;" (assignment_expression "*(undefined4 *)(iVar26 + 0x2f0) = uVar6" (pointer_expression "*(undefined4 *)(iVar26 + 0x2f0)" * (cast_expression "(undefined4 *)(iVar26 + 0x2f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x2f0)" ( (binary_expression "iVar26 + 0x2f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26)" identifier = (call_expression "(**(code **)(pcVar29 + 0x28c254))(iVar26)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" ( (pointer_expression "**(code **)(pcVar29 + 0x28c254)" * (pointer_expression "*(code **)(pcVar29 + 0x28c254)" * (cast_expression "(code **)(pcVar29 + 0x28c254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28c254)" ( (binary_expression "pcVar29 + 0x28c254" identifier + number_literal) ))))) )) (argument_list "(iVar26)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , 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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT << LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (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) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (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 , LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * LIT) + (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) * IDENT) * LIT) + (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) , (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + IDENT)) ;) })) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * IDENT) + IDENT)) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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) )))))) ;) (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 IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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) )))))) ;) (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 IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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) )))))) ;) (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 IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) | (binary_expression IDENT >> LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (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) )))))) ;) (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 IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (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 + IDENT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / 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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / 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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / 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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) << LIT)) | (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / 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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) ))) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) * IDENT) + IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) * IDENT) + IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) * IDENT) + IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) * IDENT) + IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) * IDENT) + IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (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) ))))) ;) (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) ))))) ;) }) (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 = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != 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) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) , IDENT , LIT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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 ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) while (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) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}" (type_identifier "undefined4") (function_declarator "FUN_0016cc18(int *param_1,undefined4 *param_2,undefined4 param_3)" (identifier "FUN_0016cc18") (parameter_list "(int *param_1,undefined4 *param_2,undefined4 param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined4 **ppuVar4;\n  int iVar5;\n  undefined4 uVar6;\n  double *pdVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int extraout_v1;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 **ppuVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  double dVar37;\n  float fVar39;\n  double dVar38;\n  double dVar40;\n  float fVar42;\n  float fVar43;\n  double dVar41;\n  double dVar44;\n  float fVar45;\n  double dVar46;\n  float fVar47;\n  double dVar48;\n  int *local_390;\n  char *local_37c;\n  undefined4 *local_378 [6];\n  double local_360;\n  double local_358;\n  double local_350;\n  double local_348;\n  undefined8 local_340;\n  undefined4 local_320;\n  int local_310;\n  int local_88;\n  int local_84;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  iVar26 = param_1[6];\n  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);\n  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);\n  if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }\nLAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }\n  iVar26 = local_5c;\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  (**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);\n  if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }\n  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;\n  pcVar29 = *(code **)(puVar28 + 0x28c984);\n  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);\n  if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }\n  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));\n  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;\n  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);\n  return uVar6;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 **ppuVar4;" (type_identifier "undefined4") (pointer_declarator "**ppuVar4" (* "*") (pointer_declarator "*ppuVar4" (* "*") (identifier "ppuVar4"))) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "double *pdVar7;" (primitive_type "double") (pointer_declarator "*pdVar7" (* "*") (identifier "pdVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 **ppuVar15;" (type_identifier "undefined4") (pointer_declarator "**ppuVar15" (* "*") (pointer_declarator "*ppuVar15" (* "*") (identifier "ppuVar15"))) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "undefined *puVar28;" (type_identifier "undefined") (pointer_declarator "*puVar28" (* "*") (identifier "puVar28")) (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "double dVar30;" (primitive_type "double") (identifier "dVar30") (; ";")) (declaration "double dVar31;" (primitive_type "double") (identifier "dVar31") (; ";")) (declaration "double dVar32;" (primitive_type "double") (identifier "dVar32") (; ";")) (declaration "double dVar33;" (primitive_type "double") (identifier "dVar33") (; ";")) (declaration "float fVar35;" (primitive_type "float") (identifier "fVar35") (; ";")) (declaration "float fVar36;" (primitive_type "float") (identifier "fVar36") (; ";")) (declaration "double dVar34;" (primitive_type "double") (identifier "dVar34") (; ";")) (declaration "double dVar37;" (primitive_type "double") (identifier "dVar37") (; ";")) (declaration "float fVar39;" (primitive_type "float") (identifier "fVar39") (; ";")) (declaration "double dVar38;" (primitive_type "double") (identifier "dVar38") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "float fVar42;" (primitive_type "float") (identifier "fVar42") (; ";")) (declaration "float fVar43;" (primitive_type "float") (identifier "fVar43") (; ";")) (declaration "double dVar41;" (primitive_type "double") (identifier "dVar41") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "float fVar45;" (primitive_type "float") (identifier "fVar45") (; ";")) (declaration "double dVar46;" (primitive_type "double") (identifier "dVar46") (; ";")) (declaration "float fVar47;" (primitive_type "float") (identifier "fVar47") (; ";")) (declaration "double dVar48;" (primitive_type "double") (identifier "dVar48") (; ";")) (declaration "int *local_390;" (primitive_type "int") (pointer_declarator "*local_390" (* "*") (identifier "local_390")) (; ";")) (declaration "char *local_37c;" (primitive_type "char") (pointer_declarator "*local_37c" (* "*") (identifier "local_37c")) (; ";")) (declaration "undefined4 *local_378 [6];" (type_identifier "undefined4") (pointer_declarator "*local_378 [6]" (* "*") (array_declarator "local_378 [6]" (identifier "local_378") ([ "[") (number_literal "6") (] "]"))) (; ";")) (declaration "double local_360;" (primitive_type "double") (identifier "local_360") (; ";")) (declaration "double local_358;" (primitive_type "double") (identifier "local_358") (; ";")) (declaration "double local_350;" (primitive_type "double") (identifier "local_350") (; ";")) (declaration "double local_348;" (primitive_type "double") (identifier "local_348") (; ";")) (declaration "undefined8 local_340;" (type_identifier "undefined8") (identifier "local_340") (; ";")) (declaration "undefined4 local_320;" (type_identifier "undefined4") (identifier "local_320") (; ";")) (declaration "int local_310;" (primitive_type "int") (identifier "local_310") (; ";")) (declaration "int local_88;" (primitive_type "int") (identifier "local_88") (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" (identifier "local_5c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003fa248")))) (; ";")) (expression_statement "iVar26 = param_1[6];" (assignment_expression "iVar26 = param_1[6]" (identifier "iVar26") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003fa154)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003fa154" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003fa154" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003fa154"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);" (assignment_expression "local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" (identifier "local_390") (= "=") (cast_expression "(int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003fa524"))) () ")")) (argument_list "(extraout_v1,4)" (( "(") (identifier "extraout_v1") (, ",") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (local_390 == (int *)0x0) {\n    uVar6 = 0;\n  }\n  else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" (if "if") (parenthesized_expression "(local_390 == (int *)0x0)" (( "(") (binary_expression "local_390 == (int *)0x0" (identifier "local_390") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar6 = 0;\n  }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);\n    if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }\n    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);\n    if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }\n    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);\n    puVar3 = PTR_UINT_003f98e4;\n    puVar28 = PTR_LAB_003f98e0;\n    uVar27 = 0;\n    if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }\n    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);\n    FUN_00166940(local_390);\n    uVar6 = 1;\n  }" ({ "{") (expression_statement "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);" (call_expression "(*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_003fa6ec)" (( "(") (pointer_expression "*(code *)PTR_memset_003fa6ec" (* "*") (cast_expression "(code *)PTR_memset_003fa6ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_003fa6ec"))) () ")")) (argument_list "(local_390,0,extraout_v1 << 2)" (( "(") (identifier "local_390") (, ",") (number_literal "0") (, ",") (binary_expression "extraout_v1 << 2" (identifier "extraout_v1") (<< "<<") (number_literal "2")) () ")"))) (; ";")) (if_statement "if (0 < extraout_v1) {\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }" (if "if") (parenthesized_expression "(0 < extraout_v1)" (( "(") (binary_expression "0 < extraout_v1" (number_literal "0") (< "<") (identifier "extraout_v1")) () ")")) (compound_statement "{\n      iVar24 = 0;\n      piVar23 = local_390;\n      do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);\n    }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar23 = local_390;" (assignment_expression "piVar23 = local_390" (identifier "piVar23") (= "=") (identifier "local_390")) (; ";")) (do_statement "do {\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      } while (extraout_v1 != iVar24);" (do "do") (compound_statement "{\n        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);\n        *piVar23 = iVar5;\n        if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }\n        iVar24 = iVar24 + 1;\n        piVar23 = piVar23 + 1;\n      }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);" (assignment_expression "iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003fa524)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003fa524" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003fa524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003fa524"))) () ")")) (argument_list "(iVar26,0x40)" (( "(") (identifier "iVar26") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "*piVar23 = iVar5;" (assignment_expression "*piVar23 = iVar5" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 == 0) {\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_390 = (int *)FUN_00166940(local_390);\n          if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }\n          break;\n        }" ({ "{") (expression_statement "local_390 = (int *)FUN_00166940(local_390);" (assignment_expression "local_390 = (int *)FUN_00166940(local_390)" (identifier "local_390") (= "=") (cast_expression "(int *)FUN_00166940(local_390)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00166940(local_390)" (identifier "FUN_00166940") (argument_list "(local_390)" (( "(") (identifier "local_390") () ")"))))) (; ";")) (if_statement "if (local_390 == (int *)0x0) {\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }" (if "if") (parenthesized_expression "(local_390 == (int *)0x0)" (( "(") (binary_expression "local_390 == (int *)0x0" (identifier "local_390") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar6 = 0;\n            goto LAB_0016dc30;\n          }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0016dc30;" (goto "goto") (statement_identifier "LAB_0016dc30") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar23 = piVar23 + 1;" (assignment_expression "piVar23 = piVar23 + 1" (identifier "piVar23") (= "=") (binary_expression "piVar23 + 1" (identifier "piVar23") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(extraout_v1 != iVar24)" (( "(") (binary_expression "extraout_v1 != iVar24" (identifier "extraout_v1") (!= "!=") (identifier "iVar24")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);" (assignment_expression "iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" (identifier "iVar26") (= "=") (call_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)\n                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" (parenthesized_expression "(*(code *)PTR_GetImageArtifact_003fa4d8)" (( "(") (pointer_expression "*(code *)PTR_GetImageArtifact_003fa4d8" (* "*") (cast_expression "(code *)PTR_GetImageArtifact_003fa4d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImageArtifact_003fa4d8"))) () ")")) (argument_list "(param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4d9c")) () ")")))) (; ";")) (if_statement "if (iVar26 == 0) {\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }\n    else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n    }" ({ "{") (expression_statement "dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" (identifier "dVar30") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4408" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" (else "else") (compound_statement "{\n      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);\n      if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }\n    }" ({ "{") (expression_statement "dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);" (assignment_expression "dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" (identifier "dVar30") (= "=") (cast_expression "(double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003fa780)" (( "(") (pointer_expression "*(code *)PTR_InterpretLocaleValue_003fa780" (* "*") (cast_expression "(code *)PTR_InterpretLocaleValue_003fa780" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_InterpretLocaleValue_003fa780"))) () ")")) (argument_list "(iVar26,&local_37c)" (( "(") (identifier "iVar26") (, ",") (pointer_expression "&local_37c" (& "&") (identifier "local_37c")) () ")"))))) (; ";")) (if_statement "if (*local_37c == '%') {\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" (if "if") (parenthesized_expression "(*local_37c == '%')" (( "(") (binary_expression "*local_37c == '%'" (pointer_expression "*local_37c" (* "*") (identifier "local_37c")) (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (compound_statement "{\n        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);\n      }" ({ "{") (expression_statement "dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);" (assignment_expression "dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" (identifier "dVar30") (= "=") (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48)" (identifier "dVar30") (* "*") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a48)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a48)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a48" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a48")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);" (assignment_expression "uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_AcquireAuthenticCacheView_003f9eec)" (( "(") (pointer_expression "*(code *)PTR_AcquireAuthenticCacheView_003f9eec" (* "*") (cast_expression "(code *)PTR_AcquireAuthenticCacheView_003f9eec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireAuthenticCacheView_003f9eec"))) () ")")) (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "puVar3 = PTR_UINT_003f98e4;" (assignment_expression "puVar3 = PTR_UINT_003f98e4" (identifier "puVar3") (= "=") (identifier "PTR_UINT_003f98e4")) (; ";")) (expression_statement "puVar28 = PTR_LAB_003f98e0;" (assignment_expression "puVar28 = PTR_LAB_003f98e0" (identifier "puVar28") (= "=") (identifier "PTR_LAB_003f98e0")) (; ";")) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" (identifier "uVar27") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < param_1[7]) {\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }" (if "if") (parenthesized_expression "(0 < param_1[7])" (( "(") (binary_expression "0 < param_1[7]" (number_literal "0") (< "<") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) (compound_statement "{\n      bVar1 = true;\n      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);\n      do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);\n    }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4a48" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4a48")) () ")"))))) (; ";")) (expression_statement "dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);" (assignment_expression "dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80)" (identifier "dVar32") (= "=") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a80)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a80)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a80" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a80")) () ")"))))) (; ";")) (do_statement "do {\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      } while ((int)uVar27 < param_1[7]);" (do "do") (compound_statement "{\n        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n        if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }\n        uVar27 = uVar27 + 1;\n      }" ({ "{") (expression_statement "iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)()" (identifier "iVar26") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003fa520"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)) {\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }\n        else {\n          bVar1 = false;\n        }" (if "if") (parenthesized_expression "((bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0))" (( "(") (binary_expression "(bVar1) &&\n           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0)" (( "(") (comma_expression "iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0" (assignment_expression "iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3)" (identifier "iVar24") (= "=") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)\n                               (uVar6,0,uVar27,param_1[6],1,param_3)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" (* "*") (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewAuthenticPixels_003fa664"))) () ")")) (argument_list "(uVar6,0,uVar27,param_1[6],1,param_3)" (( "(") (identifier "uVar6") (, ",") (number_literal "0") (, ",") (identifier "uVar27") (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (, ",") (comma_expression "puVar2 = PTR_LAB_003f98e0,\n           iVar24 != 0" (assignment_expression "puVar2 = PTR_LAB_003f98e0" (identifier "puVar2") (= "=") (identifier "PTR_LAB_003f98e0")) (, ",") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n          puVar20 = param_2;\n          ppuVar4 = local_378;\n          do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);\n          puVar10 = (undefined4 *)puVar10[5];\n          ppuVar15[4] = (undefined4 *)*puVar20;\n          ppuVar15[5] = puVar10;\n          iVar16 = param_1[6];\n          uVar18 = uVar27 & 1;\n          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];\n          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];\n          iVar11 = 1;\n          if (uVar18 != 0) {\n            iVar11 = -1;\n          }\n          if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }\n        }" ({ "{") (expression_statement "puVar20 = param_2;" (assignment_expression "puVar20 = param_2" (identifier "puVar20") (= "=") (identifier "param_2")) (; ";")) (expression_statement "ppuVar4 = local_378;" (assignment_expression "ppuVar4 = local_378" (identifier "ppuVar4") (= "=") (identifier "local_378")) (; ";")) (do_statement "do {\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          } while (puVar20 != param_2 + 0xc4);" (do "do") (compound_statement "{\n            ppuVar15 = ppuVar4;\n            puVar10 = puVar20;\n            puVar22 = (undefined4 *)puVar10[1];\n            puVar21 = (undefined4 *)puVar10[2];\n            puVar20 = (undefined4 *)puVar10[3];\n            *ppuVar15 = (undefined4 *)*puVar10;\n            ppuVar15[1] = puVar22;\n            ppuVar15[2] = puVar21;\n            ppuVar15[3] = puVar20;\n            puVar20 = puVar10 + 4;\n            ppuVar4 = ppuVar15 + 4;\n          }" ({ "{") (expression_statement "ppuVar15 = ppuVar4;" (assignment_expression "ppuVar15 = ppuVar4" (identifier "ppuVar15") (= "=") (identifier "ppuVar4")) (; ";")) (expression_statement "puVar10 = puVar20;" (assignment_expression "puVar10 = puVar20" (identifier "puVar10") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "puVar22 = (undefined4 *)puVar10[1];" (assignment_expression "puVar22 = (undefined4 *)puVar10[1]" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)puVar10[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar21 = (undefined4 *)puVar10[2];" (assignment_expression "puVar21 = (undefined4 *)puVar10[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)puVar10[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar20 = (undefined4 *)puVar10[3];" (assignment_expression "puVar20 = (undefined4 *)puVar10[3]" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)puVar10[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "*ppuVar15 = (undefined4 *)*puVar10;" (assignment_expression "*ppuVar15 = (undefined4 *)*puVar10" (pointer_expression "*ppuVar15" (* "*") (identifier "ppuVar15")) (= "=") (cast_expression "(undefined4 *)*puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) (; ";")) (expression_statement "ppuVar15[1] = puVar22;" (assignment_expression "ppuVar15[1] = puVar22" (subscript_expression "ppuVar15[1]" (identifier "ppuVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar22")) (; ";")) (expression_statement "ppuVar15[2] = puVar21;" (assignment_expression "ppuVar15[2] = puVar21" (subscript_expression "ppuVar15[2]" (identifier "ppuVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar21")) (; ";")) (expression_statement "ppuVar15[3] = puVar20;" (assignment_expression "ppuVar15[3] = puVar20" (subscript_expression "ppuVar15[3]" (identifier "ppuVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar20")) (; ";")) (expression_statement "puVar20 = puVar10 + 4;" (assignment_expression "puVar20 = puVar10 + 4" (identifier "puVar20") (= "=") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "ppuVar4 = ppuVar15 + 4;" (assignment_expression "ppuVar4 = ppuVar15 + 4" (identifier "ppuVar4") (= "=") (binary_expression "ppuVar15 + 4" (identifier "ppuVar15") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar20 != param_2 + 0xc4)" (( "(") (binary_expression "puVar20 != param_2 + 0xc4" (identifier "puVar20") (!= "!=") (binary_expression "param_2 + 0xc4" (identifier "param_2") (+ "+") (number_literal "0xc4"))) () ")")) (; ";")) (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)puVar10[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "ppuVar15[4] = (undefined4 *)*puVar20;" (assignment_expression "ppuVar15[4] = (undefined4 *)*puVar20" (subscript_expression "ppuVar15[4]" (identifier "ppuVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(undefined4 *)*puVar20" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (; ";")) (expression_statement "ppuVar15[5] = puVar10;" (assignment_expression "ppuVar15[5] = puVar10" (subscript_expression "ppuVar15[5]" (identifier "ppuVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "iVar16 = param_1[6];" (assignment_expression "iVar16 = param_1[6]" (identifier "iVar16") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar18 = uVar27 & 1;" (assignment_expression "uVar18 = uVar27 & 1" (identifier "uVar18") (= "=") (binary_expression "uVar27 & 1" (identifier "uVar27") (& "&") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];" (assignment_expression "iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26]" (identifier "iVar5") (= "=") (binary_expression "uVar18 * iVar16 * 0x20 + local_390[iVar26]" (binary_expression "uVar18 * iVar16 * 0x20" (binary_expression "uVar18 * iVar16" (identifier "uVar18") (* "*") (identifier "iVar16")) (* "*") (number_literal "0x20")) (+ "+") (subscript_expression "local_390[iVar26]" (identifier "local_390") ([ "[") (identifier "iVar26") (] "]")))) (; ";")) (expression_statement "iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];" (assignment_expression "iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26]" (identifier "iVar26") (= "=") (binary_expression "(uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26]" (binary_expression "(uVar27 + 1 & 1) * iVar16 * 0x20" (binary_expression "(uVar27 + 1 & 1) * iVar16" (parenthesized_expression "(uVar27 + 1 & 1)" (( "(") (binary_expression "uVar27 + 1 & 1" (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1")) (& "&") (number_literal "1")) () ")")) (* "*") (identifier "iVar16")) (* "*") (number_literal "0x20")) (+ "+") (subscript_expression "local_390[iVar26]" (identifier "local_390") ([ "[") (identifier "iVar26") (] "]")))) (; ";")) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar18 != 0) {\n            iVar11 = -1;\n          }" (if "if") (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar11 = -1;\n          }" ({ "{") (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" (identifier "iVar11") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (if_statement "if (0 < iVar16) {\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }" (if "if") (parenthesized_expression "(0 < iVar16)" (( "(") (binary_expression "0 < iVar16" (number_literal "0") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n            iVar25 = 0;\n            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n            do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);\n          }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" (identifier "dVar34") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4410" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4410")) () ")"))))) (; ";")) (do_statement "do {\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            } while (iVar25 < iVar16);" (do "do") (compound_statement "{\n              iVar14 = iVar25;\n              if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }\n              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;\n              if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }\n              dVar48 = (double)fVar36;\n              if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }\n              if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }\n              if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }\n              dVar40 = (double)fVar36;\n              if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }\n              dVar37 = (double)fVar39;\n              if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }\n              dVar33 = (double)fVar35;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }\n              if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }\n              if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }\n              if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }\n              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;\n              if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }\n              iVar16 = uVar12 * 4;\n              if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }\n              iVar16 = *(int *)(local_310 + iVar16);\n              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }\n              if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }\n              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);\n              if (iVar17 == 0) {\n                bVar1 = false;\n              }\n              iVar16 = iVar16 * 0x58 + param_1[10];\n              if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }\n              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);\n              *pdVar7 = dVar40 - dVar41;\n              pdVar7[1] = dVar37 - dVar38;\n              pdVar7[2] = dVar33 - dVar46;\n              if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }\n              if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }\n              iVar25 = iVar25 + 1;\n              iVar16 = param_1[6];\n            }" ({ "{") (expression_statement "iVar14 = iVar25;" (assignment_expression "iVar14 = iVar25" (identifier "iVar14") (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (uVar18 != 0) {\n                iVar14 = (iVar16 + -1) - iVar25;\n              }" (if "if") (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar14 = (iVar16 + -1) - iVar25;\n              }" ({ "{") (expression_statement "iVar14 = (iVar16 + -1) - iVar25;" (assignment_expression "iVar14 = (iVar16 + -1) - iVar25" (identifier "iVar14") (= "=") (binary_expression "(iVar16 + -1) - iVar25" (parenthesized_expression "(iVar16 + -1)" (( "(") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) () ")")) (- "-") (identifier "iVar25"))) (; ";")) (} "}"))) (expression_statement "iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;" (assignment_expression "iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24" (identifier "iVar16") (= "=") (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")) (* "*") (identifier "iVar14")) (+ "+") (identifier "iVar24"))) (; ";")) (if_statement "if (local_84 == 0) {\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }\n              else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" (if "if") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar17 = param_1[0xb4];\nLAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);\n                if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }\n              }" ({ "{") (expression_statement "iVar17 = param_1[0xb4];" (assignment_expression "iVar17 = param_1[0xb4]" (identifier "iVar17") (= "=") (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (labeled_statement "LAB_0016cdf8:\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);" (statement_identifier "LAB_0016cdf8") (: ":") (expression_statement "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);" (assignment_expression "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (identifier "dVar40") (= "=") (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 8) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 8) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 8) * 4" (pointer_expression "*(int *)(iVar17 + 8)" (* "*") (cast_expression "(int *)(iVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 8)" (( "(") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";"))) (expression_statement "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);" (assignment_expression "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (identifier "dVar37") (= "=") (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x14) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x14) * 4" (pointer_expression "*(int *)(iVar17 + 0x14)" (* "*") (cast_expression "(int *)(iVar17 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x14)" (( "(") (binary_expression "iVar17 + 0x14" (identifier "iVar17") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);" (assignment_expression "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (identifier "dVar33") (= "=") (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x20) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x20) * 4" (pointer_expression "*(int *)(iVar17 + 0x20)" (* "*") (cast_expression "(int *)(iVar17 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x20)" (( "(") (binary_expression "iVar17 + 0x20" (identifier "iVar17") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar17 + 0x34) == 0) {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n                else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar17 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x34) == 0" (pointer_expression "*(int *)(iVar17 + 0x34)" (* "*") (cast_expression "(int *)(iVar17 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x34)" (( "(") (binary_expression "iVar17 + 0x34" (identifier "iVar17") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" ({ "{") (expression_statement "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar36") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" (else "else") (compound_statement "{\n                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n                }" ({ "{") (expression_statement "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (identifier "fVar36") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" (* "*") (cast_expression "(int *)(iVar17 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x38)" (( "(") (binary_expression "iVar17 + 0x38" (identifier "iVar17") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" (else "else") (compound_statement "{\n                iVar17 = param_1[0xb4];\n                if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;\n                dVar33 = (double)fVar36 * dVar34;\n                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;\n                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;\n                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;\n                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);\n              }" ({ "{") (expression_statement "iVar17 = param_1[0xb4];" (assignment_expression "iVar17 = param_1[0xb4]" (identifier "iVar17") (= "=") (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (if_statement "if ((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;" (if "if") (parenthesized_expression "((*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)))" (( "(") (binary_expression "(*(int *)(iVar17 + 0x34) == 0) ||\n                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (parenthesized_expression "(*(int *)(iVar17 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x34) == 0" (pointer_expression "*(int *)(iVar17 + 0x34)" (* "*") (cast_expression "(int *)(iVar17 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x34)" (( "(") (binary_expression "iVar17 + 0x34" (identifier "iVar17") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (( "(") (comma_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),\n                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (identifier "fVar36") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" (* "*") (cast_expression "(int *)(iVar17 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x38)" (( "(") (binary_expression "iVar17 + 0x38" (identifier "iVar17") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar36") (== "==") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")")))))) () ")"))) () ")")) (goto_statement "goto LAB_0016cdf8;" (goto "goto") (statement_identifier "LAB_0016cdf8") (; ";"))) (expression_statement "dVar33 = (double)fVar36 * dVar34;" (assignment_expression "dVar33 = (double)fVar36 * dVar34" (identifier "dVar33") (= "=") (binary_expression "(double)fVar36 * dVar34" (cast_expression "(double)fVar36" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar36")) (* "*") (identifier "dVar34"))) (; ";")) (expression_statement "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;" (assignment_expression "dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33" (identifier "dVar40") (= "=") (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 8) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 8) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 8) * 4" (pointer_expression "*(int *)(iVar17 + 8)" (* "*") (cast_expression "(int *)(iVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 8)" (( "(") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar33"))) (; ";")) (expression_statement "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;" (assignment_expression "dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33" (identifier "dVar37") (= "=") (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x14) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x14) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x14) * 4" (pointer_expression "*(int *)(iVar17 + 0x14)" (* "*") (cast_expression "(int *)(iVar17 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x14)" (( "(") (binary_expression "iVar17 + 0x14" (identifier "iVar17") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar33"))) (; ";")) (expression_statement "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;" (assignment_expression "dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33" (identifier "dVar33") (= "=") (binary_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33" (cast_expression "(double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x20) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x20) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x20) * 4" (pointer_expression "*(int *)(iVar17 + 0x20)" (* "*") (cast_expression "(int *)(iVar17 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x20)" (( "(") (binary_expression "iVar17 + 0x20" (identifier "iVar17") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar33"))) (; ";")) (expression_statement "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);" (assignment_expression "fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (identifier "fVar36") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar17 + 0x38) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar17 + 0x38) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar17 + 0x38) * 4" (pointer_expression "*(int *)(iVar17 + 0x38)" (* "*") (cast_expression "(int *)(iVar17 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x38)" (( "(") (binary_expression "iVar17 + 0x38" (identifier "iVar17") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar48 = (double)fVar36;" (assignment_expression "dVar48 = (double)fVar36" (identifier "dVar48") (= "=") (cast_expression "(double)fVar36" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar36"))) (; ";")) (if_statement "if (0 < iVar25) {\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }" (if "if") (parenthesized_expression "(0 < iVar25)" (( "(") (binary_expression "0 < iVar25" (number_literal "0") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);\n                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n              }" ({ "{") (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" (identifier "dVar44") (= "=") (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0)" (identifier "dVar30") (* "*") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x2a0)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x2a0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + 0x2a0)" (( "(") (binary_expression "PTR_UINT_003f98e4 + 0x2a0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x2a0")) () ")")))))) (; ";")) (expression_statement "pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(iVar5 + (iVar14 - iVar11) * 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + (iVar14 - iVar11) * 0x20)" (( "(") (binary_expression "iVar5 + (iVar14 - iVar11) * 0x20" (identifier "iVar5") (+ "+") (binary_expression "(iVar14 - iVar11) * 0x20" (parenthesized_expression "(iVar14 - iVar11)" (( "(") (binary_expression "iVar14 - iVar11" (identifier "iVar14") (- "-") (identifier "iVar11")) () ")")) (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (* "*") (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4a80")) () ")"))))) (; ";")) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" (identifier "dVar40") (= "=") (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" (identifier "dVar44") (* "*") (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar40"))) (; ";")) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" (identifier "dVar37") (= "=") (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar37"))) (; ";")) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" (identifier "dVar33") (= "=") (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[2]" (identifier "pdVar7") ([ "[") (number_literal "2") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar33"))) (; ";")) (if_statement "if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" ({ "{") (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" (identifier "dVar48") (= "=") (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[3]" (identifier "pdVar7") ([ "[") (number_literal "3") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar48"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (0 < (int)uVar27) {\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0 < (int)uVar27)" (( "(") (binary_expression "0 < (int)uVar27" (number_literal "0") (< "<") (cast_expression "(int)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar27"))) () ")")) (compound_statement "{\n                if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }\n                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);\n                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);\n                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }\n                if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }\n              }" ({ "{") (if_statement "if (iVar25 < param_1[6] + -1) {\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar25 < param_1[6] + -1)" (( "(") (binary_expression "iVar25 < param_1[6] + -1" (identifier "iVar25") (< "<") (binary_expression "param_1[6] + -1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);\n                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = *pdVar7 * dVar44 + dVar40;\n                  dVar37 = pdVar7[1] * dVar44 + dVar37;\n                  dVar33 = pdVar7[2] * dVar44 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }\n                }" ({ "{") (expression_statement "pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(iVar26 + (iVar11 + iVar14) * 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + (iVar11 + iVar14) * 0x20)" (( "(") (binary_expression "iVar26 + (iVar11 + iVar14) * 0x20" (identifier "iVar26") (+ "+") (binary_expression "(iVar11 + iVar14) * 0x20" (parenthesized_expression "(iVar11 + iVar14)" (( "(") (binary_expression "iVar11 + iVar14" (identifier "iVar11") (+ "+") (identifier "iVar14")) () ")")) (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (expression_statement "dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (* "*") (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4a80")) () ")"))))) (; ";")) (expression_statement "dVar40 = *pdVar7 * dVar44 + dVar40;" (assignment_expression "dVar40 = *pdVar7 * dVar44 + dVar40" (identifier "dVar40") (= "=") (binary_expression "*pdVar7 * dVar44 + dVar40" (binary_expression "*pdVar7 * dVar44" (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7")) (* "*") (identifier "dVar44")) (+ "+") (identifier "dVar40"))) (; ";")) (expression_statement "dVar37 = pdVar7[1] * dVar44 + dVar37;" (assignment_expression "dVar37 = pdVar7[1] * dVar44 + dVar37" (identifier "dVar37") (= "=") (binary_expression "pdVar7[1] * dVar44 + dVar37" (binary_expression "pdVar7[1] * dVar44" (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]")) (* "*") (identifier "dVar44")) (+ "+") (identifier "dVar37"))) (; ";")) (expression_statement "dVar33 = pdVar7[2] * dVar44 + dVar33;" (assignment_expression "dVar33 = pdVar7[2] * dVar44 + dVar33" (identifier "dVar33") (= "=") (binary_expression "pdVar7[2] * dVar44 + dVar33" (binary_expression "pdVar7[2] * dVar44" (subscript_expression "pdVar7[2]" (identifier "pdVar7") ([ "[") (number_literal "2") (] "]")) (* "*") (identifier "dVar44")) (+ "+") (identifier "dVar33"))) (; ";")) (if_statement "if (local_84 != 0) {\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;\n                  }" ({ "{") (expression_statement "dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48;" (assignment_expression "dVar48 = pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48" (identifier "dVar48") (= "=") (binary_expression "pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +\n                             dVar48" (binary_expression "pdVar7[3] *\n                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (subscript_expression "pdVar7[3]" (identifier "pdVar7") ([ "[") (number_literal "3") (] "]")) (* "*") (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (* "*") (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4a80")) () ")"))))) (+ "+") (identifier "dVar48"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" (identifier "dVar44") (= "=") (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88)" (identifier "dVar30") (* "*") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xc88)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xc88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0xc88)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0xc88" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0xc88")) () ")")))))) (; ";")) (expression_statement "pdVar7 = (double *)(iVar26 + iVar14 * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + iVar14 * 0x20)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(iVar26 + iVar14 * 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + iVar14 * 0x20)" (( "(") (binary_expression "iVar26 + iVar14 * 0x20" (identifier "iVar26") (+ "+") (binary_expression "iVar14 * 0x20" (identifier "iVar14") (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (* "*") (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4a80")) () ")"))))) (; ";")) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" (identifier "dVar40") (= "=") (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" (identifier "dVar44") (* "*") (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar40"))) (; ";")) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" (identifier "dVar37") (= "=") (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar37"))) (; ";")) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" (identifier "dVar33") (= "=") (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[2]" (identifier "pdVar7") ([ "[") (number_literal "2") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar33"))) (; ";")) (if_statement "if (local_84 != 0) {\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                }" ({ "{") (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" (identifier "dVar48") (= "=") (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[3]" (identifier "pdVar7") ([ "[") (number_literal "3") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar48"))) (; ";")) (} "}"))) (if_statement "if (0 < iVar25) {\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }" (if "if") (parenthesized_expression "(0 < iVar25)" (( "(") (binary_expression "0 < iVar25" (number_literal "0") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);\n                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);\n                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);\n                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;\n                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;\n                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;\n                  if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }\n                }" ({ "{") (expression_statement "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);" (assignment_expression "dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" (identifier "dVar44") (= "=") (binary_expression "dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0)" (identifier "dVar30") (* "*") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0xcc0)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0xcc0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0xcc0)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0xcc0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0xcc0")) () ")")))))) (; ";")) (expression_statement "pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(iVar26 + (iVar14 - iVar11) * 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + (iVar14 - iVar11) * 0x20)" (( "(") (binary_expression "iVar26 + (iVar14 - iVar11) * 0x20" (identifier "iVar26") (+ "+") (binary_expression "(iVar14 - iVar11) * 0x20" (parenthesized_expression "(iVar14 - iVar11)" (( "(") (binary_expression "iVar14 - iVar11" (identifier "iVar14") (- "-") (identifier "iVar11")) () ")")) (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (expression_statement "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);" (assignment_expression "dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (* "*") (cast_expression "(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80)" (( "(") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4a80")) () ")"))))) (; ";")) (expression_statement "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;" (assignment_expression "dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40" (identifier "dVar40") (= "=") (binary_expression "dVar44 * *pdVar7 * dVar46 + dVar40" (binary_expression "dVar44 * *pdVar7 * dVar46" (binary_expression "dVar44 * *pdVar7" (identifier "dVar44") (* "*") (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar40"))) (; ";")) (expression_statement "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;" (assignment_expression "dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37" (identifier "dVar37") (= "=") (binary_expression "dVar44 * pdVar7[1] * dVar46 + dVar37" (binary_expression "dVar44 * pdVar7[1] * dVar46" (binary_expression "dVar44 * pdVar7[1]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar37"))) (; ";")) (expression_statement "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;" (assignment_expression "dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33" (identifier "dVar33") (= "=") (binary_expression "dVar44 * pdVar7[2] * dVar46 + dVar33" (binary_expression "dVar44 * pdVar7[2] * dVar46" (binary_expression "dVar44 * pdVar7[2]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[2]" (identifier "pdVar7") ([ "[") (number_literal "2") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar33"))) (; ";")) (if_statement "if (local_84 != 0) {\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;\n                  }" ({ "{") (expression_statement "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;" (assignment_expression "dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48" (identifier "dVar48") (= "=") (binary_expression "dVar44 * pdVar7[3] * dVar46 + dVar48" (binary_expression "dVar44 * pdVar7[3] * dVar46" (binary_expression "dVar44 * pdVar7[3]" (identifier "dVar44") (* "*") (subscript_expression "pdVar7[3]" (identifier "pdVar7") ([ "[") (number_literal "3") (] "]"))) (* "*") (identifier "dVar46")) (+ "+") (identifier "dVar48"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (0.0 <= dVar40) {\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar36 = 0.0;\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar40)" (( "(") (binary_expression "0.0 <= dVar40" (number_literal "0.0") (<= "<=") (identifier "dVar40")) () ")")) (compound_statement "{\n                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" ({ "{") (if_statement "if (dVar40 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar36 = (float)dVar40;\n                }\n                else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" (if "if") (parenthesized_expression "(dVar40 < *(double *)(puVar28 + 0x4a48))" (( "(") (binary_expression "dVar40 < *(double *)(puVar28 + 0x4a48)" (identifier "dVar40") (< "<") (pointer_expression "*(double *)(puVar28 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar28 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x4a48)" (( "(") (binary_expression "puVar28 + 0x4a48" (identifier "puVar28") (+ "+") (number_literal "0x4a48")) () ")"))))) () ")")) (compound_statement "{\n                  fVar36 = (float)dVar40;\n                }" ({ "{") (expression_statement "fVar36 = (float)dVar40;" (assignment_expression "fVar36 = (float)dVar40" (identifier "fVar36") (= "=") (cast_expression "(float)dVar40" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" (else "else") (compound_statement "{\n                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" ({ "{") (expression_statement "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar36") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                fVar36 = 0.0;\n              }" (else "else") (compound_statement "{\n                fVar36 = 0.0;\n              }" ({ "{") (expression_statement "fVar36 = 0.0;" (assignment_expression "fVar36 = 0.0" (identifier "fVar36") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar40 = (double)fVar36;" (assignment_expression "dVar40 = (double)fVar36" (identifier "dVar40") (= "=") (cast_expression "(double)fVar36" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar36"))) (; ";")) (if_statement "if (0.0 <= dVar37) {\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar39 = 0.0;\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar37)" (( "(") (binary_expression "0.0 <= dVar37" (number_literal "0.0") (<= "<=") (identifier "dVar37")) () ")")) (compound_statement "{\n                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" ({ "{") (if_statement "if (dVar37 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar39 = (float)dVar37;\n                }\n                else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" (if "if") (parenthesized_expression "(dVar37 < *(double *)(puVar28 + 0x4a48))" (( "(") (binary_expression "dVar37 < *(double *)(puVar28 + 0x4a48)" (identifier "dVar37") (< "<") (pointer_expression "*(double *)(puVar28 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar28 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x4a48)" (( "(") (binary_expression "puVar28 + 0x4a48" (identifier "puVar28") (+ "+") (number_literal "0x4a48")) () ")"))))) () ")")) (compound_statement "{\n                  fVar39 = (float)dVar37;\n                }" ({ "{") (expression_statement "fVar39 = (float)dVar37;" (assignment_expression "fVar39 = (float)dVar37" (identifier "fVar39") (= "=") (cast_expression "(float)dVar37" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar37"))) (; ";")) (} "}")) (else_clause "else {\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" (else "else") (compound_statement "{\n                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" ({ "{") (expression_statement "fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar39") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                fVar39 = 0.0;\n              }" (else "else") (compound_statement "{\n                fVar39 = 0.0;\n              }" ({ "{") (expression_statement "fVar39 = 0.0;" (assignment_expression "fVar39 = 0.0" (identifier "fVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar37 = (double)fVar39;" (assignment_expression "dVar37 = (double)fVar39" (identifier "dVar37") (= "=") (cast_expression "(double)fVar39" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar39"))) (; ";")) (if_statement "if (0.0 <= dVar33) {\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }\n              else {\n                fVar35 = 0.0;\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar33)" (( "(") (binary_expression "0.0 <= dVar33" (number_literal "0.0") (<= "<=") (identifier "dVar33")) () ")")) (compound_statement "{\n                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }\n              }" ({ "{") (if_statement "if (dVar33 < *(double *)(puVar28 + 0x4a48)) {\n                  fVar35 = (float)dVar33;\n                }\n                else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" (if "if") (parenthesized_expression "(dVar33 < *(double *)(puVar28 + 0x4a48))" (( "(") (binary_expression "dVar33 < *(double *)(puVar28 + 0x4a48)" (identifier "dVar33") (< "<") (pointer_expression "*(double *)(puVar28 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar28 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x4a48)" (( "(") (binary_expression "puVar28 + 0x4a48" (identifier "puVar28") (+ "+") (number_literal "0x4a48")) () ")"))))) () ")")) (compound_statement "{\n                  fVar35 = (float)dVar33;\n                }" ({ "{") (expression_statement "fVar35 = (float)dVar33;" (assignment_expression "fVar35 = (float)dVar33" (identifier "fVar35") (= "=") (cast_expression "(float)dVar33" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar33"))) (; ";")) (} "}")) (else_clause "else {\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" (else "else") (compound_statement "{\n                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                }" ({ "{") (expression_statement "fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar35") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                fVar35 = 0.0;\n              }" (else "else") (compound_statement "{\n                fVar35 = 0.0;\n              }" ({ "{") (expression_statement "fVar35 = 0.0;" (assignment_expression "fVar35 = 0.0" (identifier "fVar35") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar33 = (double)fVar35;" (assignment_expression "dVar33 = (double)fVar35" (identifier "dVar33") (= "=") (cast_expression "(double)fVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar35"))) (; ";")) (if_statement "if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }\n                dVar48 = (double)fVar42;\n              }" ({ "{") (if_statement "if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }\n                else {\n                  fVar42 = 0.0;\n                }" (if "if") (parenthesized_expression "(0.0 <= dVar48)" (( "(") (binary_expression "0.0 <= dVar48" (number_literal "0.0") (<= "<=") (identifier "dVar48")) () ")")) (compound_statement "{\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }\n                }" ({ "{") (if_statement "if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                  }\n                  else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" (if "if") (parenthesized_expression "(dVar48 < *(double *)(puVar28 + 0x4a48))" (( "(") (binary_expression "dVar48 < *(double *)(puVar28 + 0x4a48)" (identifier "dVar48") (< "<") (pointer_expression "*(double *)(puVar28 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar28 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x4a48)" (( "(") (binary_expression "puVar28 + 0x4a48" (identifier "puVar28") (+ "+") (number_literal "0x4a48")) () ")"))))) () ")")) (compound_statement "{\n                    fVar42 = (float)dVar48;\n                  }" ({ "{") (expression_statement "fVar42 = (float)dVar48;" (assignment_expression "fVar42 = (float)dVar48" (identifier "fVar42") (= "=") (cast_expression "(float)dVar48" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar48"))) (; ";")) (} "}")) (else_clause "else {\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" (else "else") (compound_statement "{\n                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                  }" ({ "{") (expression_statement "fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar42") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  fVar42 = 0.0;\n                }" (else "else") (compound_statement "{\n                  fVar42 = 0.0;\n                }" ({ "{") (expression_statement "fVar42 = 0.0;" (assignment_expression "fVar42 = 0.0" (identifier "fVar42") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar48 = (double)fVar42;" (assignment_expression "dVar48 = (double)fVar42" (identifier "dVar48") (= "=") (cast_expression "(double)fVar42" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar42"))) (; ";")) (} "}"))) (if_statement "if (0.0 <= fVar36) {\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }\n              else {\n                uVar12 = 0;\n              }" (if "if") (parenthesized_expression "(0.0 <= fVar36)" (( "(") (binary_expression "0.0 <= fVar36" (number_literal "0.0") (<= "<=") (identifier "fVar36")) () ")")) (compound_statement "{\n                uVar12 = 0xff;\n                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }\n              }" ({ "{") (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" (identifier "uVar12") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }" (if "if") (parenthesized_expression "(fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (( "(") (binary_expression "fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar36") (< "<") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) () ")")) (compound_statement "{\n                  if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }\n                }" ({ "{") (if_statement "if (NAN(fVar36)) {\n                    uVar12 = 0;\n                  }\n                  else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" (if "if") (parenthesized_expression "(NAN(fVar36))" (( "(") (call_expression "NAN(fVar36)" (identifier "NAN") (argument_list "(fVar36)" (( "(") (identifier "fVar36") () ")"))) () ")")) (compound_statement "{\n                    uVar12 = 0;\n                  }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" (else "else") (if_statement "if (0.0 < fVar36) {\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar12 = 0;\n                  }" (if "if") (parenthesized_expression "(0.0 < fVar36)" (( "(") (binary_expression "0.0 < fVar36" (number_literal "0.0") (< "<") (identifier "fVar36")) () ")")) (compound_statement "{\n                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }\n                  }" ({ "{") (if_statement "if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar12 = 0xff;\n                    }" (if "if") (parenthesized_expression "((double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" (( "(") (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar36" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar36")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a78" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a78")) () ")"))))) () ")")) (compound_statement "{\n                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar12 = (int)dVar44 & 0xff;\n                    }" ({ "{") (expression_statement "dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar44") (= "=") (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar36 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar36" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar36")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" ({ "{") (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (= "=") (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar12 = (int)dVar44 & 0xff;" (assignment_expression "uVar12 = (int)dVar44 & 0xff" (identifier "uVar12") (= "=") (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar44")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                      uVar12 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar12 = 0xff;\n                    }" ({ "{") (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" (identifier "uVar12") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    uVar12 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar12 = 0;\n                  }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (} "}"))) (} "}")) (else_clause "else {\n                uVar12 = 0;\n              }" (else "else") (compound_statement "{\n                uVar12 = 0;\n              }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (0.0 <= fVar39) {\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }\n              else {\n                uVar8 = 0;\n              }" (if "if") (parenthesized_expression "(0.0 <= fVar39)" (( "(") (binary_expression "0.0 <= fVar39" (number_literal "0.0") (<= "<=") (identifier "fVar39")) () ")")) (compound_statement "{\n                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }\n              }" ({ "{") (if_statement "if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }\n                else {\n                  uVar8 = 0xff;\n                }" (if "if") (parenthesized_expression "(fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (( "(") (binary_expression "fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar39") (< "<") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) () ")")) (compound_statement "{\n                  if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                }" ({ "{") (if_statement "if (NAN(fVar39)) {\n                    uVar8 = 0;\n                  }\n                  else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" (if "if") (parenthesized_expression "(NAN(fVar39))" (( "(") (call_expression "NAN(fVar39)" (identifier "NAN") (argument_list "(fVar39)" (( "(") (identifier "fVar39") () ")"))) () ")")) (compound_statement "{\n                    uVar8 = 0;\n                  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" (else "else") (if_statement "if (0.0 < fVar39) {\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" (if "if") (parenthesized_expression "(0.0 < fVar39)" (( "(") (binary_expression "0.0 < fVar39" (number_literal "0.0") (< "<") (identifier "fVar39")) () ")")) (compound_statement "{\n                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" ({ "{") (if_statement "if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }" (if "if") (parenthesized_expression "((double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" (( "(") (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar39" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar39")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a78" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a78")) () ")"))))) () ")")) (compound_statement "{\n                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar44 & 0xff;\n                    }" ({ "{") (expression_statement "dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar44") (= "=") (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar39 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar39" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar39")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" ({ "{") (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (= "=") (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar8 = (int)dVar44 & 0xff;" (assignment_expression "uVar8 = (int)dVar44 & 0xff" (identifier "uVar8") (= "=") (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar44")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                      uVar8 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar8 = 0xff;\n                    }" ({ "{") (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    uVar8 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar8 = 0;\n                  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n                  uVar8 = 0xff;\n                }" (else "else") (compound_statement "{\n                  uVar8 = 0xff;\n                }" ({ "{") (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                uVar8 = 0;\n              }" (else "else") (compound_statement "{\n                uVar8 = 0;\n              }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (0.0 <= fVar35) {\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }\n              else {\n                uVar13 = 0;\n              }" (if "if") (parenthesized_expression "(0.0 <= fVar35)" (( "(") (binary_expression "0.0 <= fVar35" (number_literal "0.0") (<= "<=") (identifier "fVar35")) () ")")) (compound_statement "{\n                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }\n              }" ({ "{") (if_statement "if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }\n                else {\n                  uVar13 = 0xff;\n                }" (if "if") (parenthesized_expression "(fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (( "(") (binary_expression "fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar35") (< "<") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) () ")")) (compound_statement "{\n                  if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                }" ({ "{") (if_statement "if (NAN(fVar35)) {\n                    uVar13 = 0;\n                  }\n                  else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" (if "if") (parenthesized_expression "(NAN(fVar35))" (( "(") (call_expression "NAN(fVar35)" (identifier "NAN") (argument_list "(fVar35)" (( "(") (identifier "fVar35") () ")"))) () ")")) (compound_statement "{\n                    uVar13 = 0;\n                  }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" (else "else") (if_statement "if (0.0 < fVar35) {\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" (if "if") (parenthesized_expression "(0.0 < fVar35)" (( "(") (binary_expression "0.0 < fVar35" (number_literal "0.0") (< "<") (identifier "fVar35")) () ")")) (compound_statement "{\n                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }\n                  }" ({ "{") (if_statement "if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }\n                    else {\n                      uVar13 = 0xff;\n                    }" (if "if") (parenthesized_expression "((double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78))" (( "(") (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80) <\n                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar35")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a78" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a78")) () ")"))))) () ")")) (compound_statement "{\n                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar13 = (int)dVar44 & 0xff;\n                    }" ({ "{") (expression_statement "dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar44") (= "=") (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80) +\n                               *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar35 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar35")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" ({ "{") (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (= "=") (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar13 = (int)dVar44 & 0xff;" (assignment_expression "uVar13 = (int)dVar44 & 0xff" (identifier "uVar13") (= "=") (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar44")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                      uVar13 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar13 = 0xff;\n                    }" ({ "{") (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" (identifier "uVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    uVar13 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar13 = 0;\n                  }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n                  uVar13 = 0xff;\n                }" (else "else") (compound_statement "{\n                  uVar13 = 0xff;\n                }" ({ "{") (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" (identifier "uVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                uVar13 = 0;\n              }" (else "else") (compound_statement "{\n                uVar13 = 0;\n              }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;" (assignment_expression "uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2" (identifier "uVar12") (= "=") (binary_expression "(uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2" (binary_expression "(uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6" (binary_expression "(uVar13 >> 2) << 0xc" (parenthesized_expression "(uVar13 >> 2)" (( "(") (binary_expression "uVar13 >> 2" (identifier "uVar13") (>> ">>") (number_literal "2")) () ")")) (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "(uVar8 >> 2) << 6" (parenthesized_expression "(uVar8 >> 2)" (( "(") (binary_expression "uVar8 >> 2" (identifier "uVar8") (>> ">>") (number_literal "2")) () ")")) (<< "<<") (number_literal "6"))) (| "|") (binary_expression "uVar12 >> 2" (identifier "uVar12") (>> ">>") (number_literal "2")))) (; ";")) (if_statement "if (local_84 != 0) {\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }\n                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;\n              }" ({ "{") (if_statement "if (0.0 <= dVar48) {\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }\n                else {\n                  uVar8 = 0;\n                }" (if "if") (parenthesized_expression "(0.0 <= dVar48)" (( "(") (binary_expression "0.0 <= dVar48" (number_literal "0.0") (<= "<=") (identifier "dVar48")) () ")")) (compound_statement "{\n                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }\n                }" ({ "{") (if_statement "if (dVar48 < *(double *)(puVar28 + 0x4a48)) {\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }\n                  else {\n                    uVar8 = 0xff;\n                  }" (if "if") (parenthesized_expression "(dVar48 < *(double *)(puVar28 + 0x4a48))" (( "(") (binary_expression "dVar48 < *(double *)(puVar28 + 0x4a48)" (identifier "dVar48") (< "<") (pointer_expression "*(double *)(puVar28 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar28 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x4a48)" (( "(") (binary_expression "puVar28 + 0x4a48" (identifier "puVar28") (+ "+") (number_literal "0x4a48")) () ")"))))) () ")")) (compound_statement "{\n                    fVar42 = (float)dVar48;\n                    if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                  }" ({ "{") (expression_statement "fVar42 = (float)dVar48;" (assignment_expression "fVar42 = (float)dVar48" (identifier "fVar42") (= "=") (cast_expression "(float)dVar48" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar48"))) (; ";")) (if_statement "if (NAN(fVar42)) {\n                      uVar8 = 0;\n                    }\n                    else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" (if "if") (parenthesized_expression "(NAN(fVar42))" (( "(") (call_expression "NAN(fVar42)" (identifier "NAN") (argument_list "(fVar42)" (( "(") (identifier "fVar42") () ")"))) () ")")) (compound_statement "{\n                      uVar8 = 0;\n                    }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" (else "else") (if_statement "if (0.0 < fVar42) {\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" (if "if") (parenthesized_expression "(0.0 < fVar42)" (( "(") (binary_expression "0.0 < fVar42" (number_literal "0.0") (< "<") (identifier "fVar42")) () ")")) (compound_statement "{\n                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }\n                    }" ({ "{") (if_statement "if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }\n                      else {\n                        uVar8 = 0xff;\n                      }" (if "if") (parenthesized_expression "((double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78))" (( "(") (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80) <\n                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar42" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar42")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a78" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a78")) () ")"))))) () ")")) (compound_statement "{\n                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar8 = (int)dVar44 & 0xff;\n                      }" ({ "{") (expression_statement "dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar44") (= "=") (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80) +\n                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar42 / *(double *)(puVar3 + -0x2a80)" (cast_expression "(double)fVar42" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar42")) (/ "/") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" ({ "{") (expression_statement "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (= "=") (binary_expression "dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar44") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar8 = (int)dVar44 & 0xff;" (assignment_expression "uVar8 = (int)dVar44 & 0xff" (identifier "uVar8") (= "=") (binary_expression "(int)dVar44 & 0xff" (cast_expression "(int)dVar44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar44")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                        uVar8 = 0xff;\n                      }" (else "else") (compound_statement "{\n                        uVar8 = 0xff;\n                      }" ({ "{") (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                      uVar8 = 0;\n                    }" (else "else") (compound_statement "{\n                      uVar8 = 0;\n                    }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n                    uVar8 = 0xff;\n                  }" (else "else") (compound_statement "{\n                    uVar8 = 0xff;\n                  }" ({ "{") (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  uVar8 = 0;\n                }" (else "else") (compound_statement "{\n                  uVar8 = 0;\n                }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar12 = uVar12 | (uVar8 >> 2) << 0x12;" (assignment_expression "uVar12 = uVar12 | (uVar8 >> 2) << 0x12" (identifier "uVar12") (= "=") (binary_expression "uVar12 | (uVar8 >> 2) << 0x12" (identifier "uVar12") (| "|") (binary_expression "(uVar8 >> 2) << 0x12" (parenthesized_expression "(uVar8 >> 2)" (( "(") (binary_expression "uVar8 >> 2" (identifier "uVar8") (>> ">>") (number_literal "2")) () ")")) (<< "<<") (number_literal "0x12")))) (; ";")) (} "}"))) (expression_statement "iVar16 = uVar12 * 4;" (assignment_expression "iVar16 = uVar12 * 4" (identifier "iVar16") (= "=") (binary_expression "uVar12 * 4" (identifier "uVar12") (* "*") (number_literal "4"))) (; ";")) (if_statement "if (*(int *)(local_310 + iVar16) < 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }" (if "if") (parenthesized_expression "(*(int *)(local_310 + iVar16) < 0)" (( "(") (binary_expression "*(int *)(local_310 + iVar16) < 0" (pointer_expression "*(int *)(local_310 + iVar16)" (* "*") (cast_expression "(int *)(local_310 + iVar16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_310 + iVar16)" (( "(") (binary_expression "local_310 + iVar16" (identifier "local_310") (+ "+") (identifier "iVar16")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n                fVar42 = fVar36;\n                if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }\n                fVar47 = fVar39;\n                if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }\n                if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }\n                uVar12 = 7;\n                dVar44 = *(double *)(puVar3 + -0x2a80);\n                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);\n                puVar20 = local_378[0];\n                do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));\n                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);\n                local_360 = dVar40;\n                local_358 = dVar37;\n                local_350 = dVar33;\n                local_348 = dVar48;\n                FUN_00165e20(param_1,local_378,*puVar20);\n                *(undefined4 *)(local_310 + iVar16) = local_320;\n              }" ({ "{") (expression_statement "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (expression_statement "fVar42 = fVar36;" (assignment_expression "fVar42 = fVar36" (identifier "fVar42") (= "=") (identifier "fVar36")) (; ";")) (if_statement "if (fVar43 <= fVar36) {\n                  fVar42 = fVar43;\n                }" (if "if") (parenthesized_expression "(fVar43 <= fVar36)" (( "(") (binary_expression "fVar43 <= fVar36" (identifier "fVar43") (<= "<=") (identifier "fVar36")) () ")")) (compound_statement "{\n                  fVar42 = fVar43;\n                }" ({ "{") (expression_statement "fVar42 = fVar43;" (assignment_expression "fVar42 = fVar43" (identifier "fVar42") (= "=") (identifier "fVar43")) (; ";")) (} "}"))) (expression_statement "fVar47 = fVar39;" (assignment_expression "fVar47 = fVar39" (identifier "fVar47") (= "=") (identifier "fVar39")) (; ";")) (if_statement "if (fVar43 <= fVar39) {\n                  fVar47 = fVar43;\n                }" (if "if") (parenthesized_expression "(fVar43 <= fVar39)" (( "(") (binary_expression "fVar43 <= fVar39" (identifier "fVar43") (<= "<=") (identifier "fVar39")) () ")")) (compound_statement "{\n                  fVar47 = fVar43;\n                }" ({ "{") (expression_statement "fVar47 = fVar43;" (assignment_expression "fVar47 = fVar43" (identifier "fVar47") (= "=") (identifier "fVar43")) (; ";")) (} "}"))) (if_statement "if (fVar35 < fVar43) {\n                  fVar43 = fVar35;\n                }" (if "if") (parenthesized_expression "(fVar35 < fVar43)" (( "(") (binary_expression "fVar35 < fVar43" (identifier "fVar35") (< "<") (identifier "fVar43")) () ")")) (compound_statement "{\n                  fVar43 = fVar35;\n                }" ({ "{") (expression_statement "fVar43 = fVar35;" (assignment_expression "fVar43 = fVar35" (identifier "fVar43") (= "=") (identifier "fVar35")) (; ";")) (} "}"))) (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" (identifier "uVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "dVar44 = *(double *)(puVar3 + -0x2a80);" (assignment_expression "dVar44 = *(double *)(puVar3 + -0x2a80)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(puVar3 + -0x2a80)" (* "*") (cast_expression "(double *)(puVar3 + -0x2a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x2a80)" (( "(") (binary_expression "puVar3 + -0x2a80" (identifier "puVar3") (+ "+") (number_literal "-0x2a80")) () ")"))))) (; ";")) (expression_statement "dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);" (assignment_expression "dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a78" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a78")) () ")"))))) (; ";")) (expression_statement "puVar20 = local_378[0];" (assignment_expression "puVar20 = local_378[0]" (identifier "puVar20") (= "=") (subscript_expression "local_378[0]" (identifier "local_378") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));" (do "do") (compound_statement "{\n                  uVar8 = 0;\n                  if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }\n                  if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }\n                  if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }\n                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;\n                  if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }\n                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];\n                  uVar12 = uVar12 - 1;\n                }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" (if "if") (parenthesized_expression "((0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36))))" (( "(") (binary_expression "(0.0 <= fVar36) &&\n                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))" (parenthesized_expression "(0.0 <= fVar36)" (( "(") (binary_expression "0.0 <= fVar36" (number_literal "0.0") (<= "<=") (identifier "fVar36")) () ")")) (&& "&&") (parenthesized_expression "((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))" (( "(") (parenthesized_expression "(*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36))" (( "(") (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)" (binary_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36" (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")")))) (<= "<=") (identifier "fVar36")) (|| "||") (parenthesized_expression "(0.0 < fVar36)" (( "(") (binary_expression "0.0 < fVar36" (number_literal "0.0") (< "<") (identifier "fVar36")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }\n                  }" ({ "{") (if_statement "if ((double)fVar42 / dVar44 < dVar46) {\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }\n                    else {\n                      uVar8 = 0xff;\n                    }" (if "if") (parenthesized_expression "((double)fVar42 / dVar44 < dVar46)" (( "(") (binary_expression "(double)fVar42 / dVar44 < dVar46" (binary_expression "(double)fVar42 / dVar44" (cast_expression "(double)fVar42" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar42")) (/ "/") (identifier "dVar44")) (< "<") (identifier "dVar46")) () ")")) (compound_statement "{\n                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }\n                      uVar8 = (int)dVar38 & 0xff;\n                    }" ({ "{") (expression_statement "dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar38") (= "=") (binary_expression "(double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar42 / dVar44" (cast_expression "(double)fVar42" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar42")) (/ "/") (identifier "dVar44")) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar38")) () ")")) (compound_statement "{\n                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                      }" ({ "{") (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (= "=") (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar8 = (int)dVar38 & 0xff;" (assignment_expression "uVar8 = (int)dVar38 & 0xff" (identifier "uVar8") (= "=") (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar38")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                      uVar8 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar8 = 0xff;\n                    }" ({ "{") (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (0.0 <= fVar39) {\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = 0;\n                  }" (if "if") (parenthesized_expression "(0.0 <= fVar39)" (( "(") (binary_expression "0.0 <= fVar39" (number_literal "0.0") (<= "<=") (identifier "fVar39")) () ")")) (compound_statement "{\n                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }\n                    else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" (if "if") (parenthesized_expression "(fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (( "(") (binary_expression "fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar39") (< "<") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) () ")")) (compound_statement "{\n                      if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }\n                    }" ({ "{") (if_statement "if (NAN(fVar39)) {\n                        uVar13 = 0;\n                      }\n                      else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" (if "if") (parenthesized_expression "(NAN(fVar39))" (( "(") (call_expression "NAN(fVar39)" (identifier "NAN") (argument_list "(fVar39)" (( "(") (identifier "fVar39") () ")"))) () ")")) (compound_statement "{\n                        uVar13 = 0;\n                      }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" (else "else") (compound_statement "{\n                        uVar13 = 0;\n                        if (0.0 < fVar39) goto LAB_0016d63c;\n                      }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < fVar39) goto LAB_0016d63c;" (if "if") (parenthesized_expression "(0.0 < fVar39)" (( "(") (binary_expression "0.0 < fVar39" (number_literal "0.0") (< "<") (identifier "fVar39")) () ")")) (goto_statement "goto LAB_0016d63c;" (goto "goto") (statement_identifier "LAB_0016d63c") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" (else "else") (compound_statement "{\nLAB_0016d63c:\n                      uVar13 = 0xff;\n                      if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }\n                    }" ({ "{") (labeled_statement "LAB_0016d63c:\n                      uVar13 = 0xff;" (statement_identifier "LAB_0016d63c") (: ":") (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" (identifier "uVar13") (= "=") (number_literal "0xff")) (; ";"))) (if_statement "if ((double)fVar47 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }" (if "if") (parenthesized_expression "((double)fVar47 / dVar44 < dVar46)" (( "(") (binary_expression "(double)fVar47 / dVar44 < dVar46" (binary_expression "(double)fVar47 / dVar44" (cast_expression "(double)fVar47" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar47")) (/ "/") (identifier "dVar44")) (< "<") (identifier "dVar46")) () ")")) (compound_statement "{\n                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar13 = (int)dVar38 & 0xff;\n                      }" ({ "{") (expression_statement "dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar38") (= "=") (binary_expression "(double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar47 / dVar44" (cast_expression "(double)fVar47" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar47")) (/ "/") (identifier "dVar44")) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar38")) () ")")) (compound_statement "{\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" ({ "{") (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (= "=") (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar13 = (int)dVar38 & 0xff;" (assignment_expression "uVar13 = (int)dVar38 & 0xff" (identifier "uVar13") (= "=") (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar38")) (& "&") (number_literal "0xff"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n                    uVar13 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar13 = 0;\n                  }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (0.0 <= fVar35) {\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }\n                  else {\n                    uVar9 = 0;\n                  }" (if "if") (parenthesized_expression "(0.0 <= fVar35)" (( "(") (binary_expression "0.0 <= fVar35" (number_literal "0.0") (<= "<=") (identifier "fVar35")) () ")")) (compound_statement "{\n                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }\n                    else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" (if "if") (parenthesized_expression "(fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8))" (( "(") (binary_expression "fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar35") (< "<") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) () ")")) (compound_statement "{\n                      if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }\n                    }" ({ "{") (if_statement "if (NAN(fVar35)) {\n                        uVar9 = 0;\n                      }\n                      else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" (if "if") (parenthesized_expression "(NAN(fVar35))" (( "(") (call_expression "NAN(fVar35)" (identifier "NAN") (argument_list "(fVar35)" (( "(") (identifier "fVar35") () ")"))) () ")")) (compound_statement "{\n                        uVar9 = 0;\n                      }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" (else "else") (compound_statement "{\n                        if (0.0 < fVar35) goto LAB_0016d6f4;\n                        uVar9 = 0;\n                      }" ({ "{") (if_statement "if (0.0 < fVar35) goto LAB_0016d6f4;" (if "if") (parenthesized_expression "(0.0 < fVar35)" (( "(") (binary_expression "0.0 < fVar35" (number_literal "0.0") (< "<") (identifier "fVar35")) () ")")) (goto_statement "goto LAB_0016d6f4;" (goto "goto") (statement_identifier "LAB_0016d6f4") (; ";"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" (else "else") (compound_statement "{\nLAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }\n                    }" ({ "{") (labeled_statement "LAB_0016d6f4:\n                      if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }" (statement_identifier "LAB_0016d6f4") (: ":") (if_statement "if ((double)fVar43 / dVar44 < dVar46) {\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }\n                      else {\n                        uVar9 = 0xff;\n                      }" (if "if") (parenthesized_expression "((double)fVar43 / dVar44 < dVar46)" (( "(") (binary_expression "(double)fVar43 / dVar44 < dVar46" (binary_expression "(double)fVar43 / dVar44" (cast_expression "(double)fVar43" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar43")) (/ "/") (identifier "dVar44")) (< "<") (identifier "dVar46")) () ")")) (compound_statement "{\n                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }\n                        uVar9 = (int)dVar38 & 0xff;\n                      }" ({ "{") (expression_statement "dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar38") (= "=") (binary_expression "(double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar43 / dVar44" (cast_expression "(double)fVar43" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar43")) (/ "/") (identifier "dVar44")) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar38")) () ")")) (compound_statement "{\n                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                        }" ({ "{") (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (= "=") (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar9 = (int)dVar38 & 0xff;" (assignment_expression "uVar9 = (int)dVar38 & 0xff" (identifier "uVar9") (= "=") (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar38")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                        uVar9 = 0xff;\n                      }" (else "else") (compound_statement "{\n                        uVar9 = 0xff;\n                      }" ({ "{") (expression_statement "uVar9 = 0xff;" (assignment_expression "uVar9 = 0xff" (identifier "uVar9") (= "=") (number_literal "0xff")) (; ";")) (} "}"))))) (} "}")))) (} "}")) (else_clause "else {\n                    uVar9 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar9 = 0;\n                  }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;" (assignment_expression "uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U" (identifier "uVar8") (= "=") (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |\n                          (int)uVar8 >> (uVar12 & 0x1f) & 1U" (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |\n                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1" (binary_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2" (parenthesized_expression "((int)uVar9 >> (uVar12 & 0x1f) & 1U)" (( "(") (binary_expression "(int)uVar9 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar9 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (>> ">>") (parenthesized_expression "(uVar12 & 0x1f)" (( "(") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1U")) () ")")) (<< "<<") (number_literal "2")) (| "|") (binary_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1" (parenthesized_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U)" (( "(") (binary_expression "(int)uVar13 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (>> ">>") (parenthesized_expression "(uVar12 & 0x1f)" (( "(") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1U")) () ")")) (<< "<<") (number_literal "1"))) (| "|") (binary_expression "(int)uVar8 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar8 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (>> ">>") (parenthesized_expression "(uVar12 & 0x1f)" (( "(") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1U")))) (; ";")) (if_statement "if (local_84 != 0) {\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }\n                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;\n                  }" ({ "{") (if_statement "if (0.0 <= dVar48) {\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }\n                    else {\n                      uVar13 = 0;\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar48)" (( "(") (binary_expression "0.0 <= dVar48" (number_literal "0.0") (<= "<=") (identifier "dVar48")) () ")")) (compound_statement "{\n                      if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }\n                    }" ({ "{") (if_statement "if (dVar48 < dVar31) {\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }\n                      else {\n                        uVar13 = 0xff;\n                      }" (if "if") (parenthesized_expression "(dVar48 < dVar31)" (( "(") (binary_expression "dVar48 < dVar31" (identifier "dVar48") (< "<") (identifier "dVar31")) () ")")) (compound_statement "{\n                        fVar45 = (float)dVar48;\n                        if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }\n                      }" ({ "{") (expression_statement "fVar45 = (float)dVar48;" (assignment_expression "fVar45 = (float)dVar48" (identifier "fVar45") (= "=") (cast_expression "(float)dVar48" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar48"))) (; ";")) (if_statement "if (NAN(fVar45)) {\n                          uVar13 = 0;\n                        }\n                        else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" (if "if") (parenthesized_expression "(NAN(fVar45))" (( "(") (call_expression "NAN(fVar45)" (identifier "NAN") (argument_list "(fVar45)" (( "(") (identifier "fVar45") () ")"))) () ")")) (compound_statement "{\n                          uVar13 = 0;\n                        }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" (else "else") (if_statement "if (0.0 < fVar45) {\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }\n                        else {\n                          uVar13 = 0;\n                        }" (if "if") (parenthesized_expression "(0.0 < fVar45)" (( "(") (binary_expression "0.0 < fVar45" (number_literal "0.0") (< "<") (identifier "fVar45")) () ")")) (compound_statement "{\n                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }\n                        }" ({ "{") (if_statement "if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }\n                          else {\n                            uVar13 = 0xff;\n                          }" (if "if") (parenthesized_expression "((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78))" (( "(") (binary_expression "(double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)" (binary_expression "(double)fVar45 / dVar32" (cast_expression "(double)fVar45" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar45")) (/ "/") (identifier "dVar32")) (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + -0x2a78)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + -0x2a78)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x2a78" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x2a78")) () ")"))))) () ")")) (compound_statement "{\n                            dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);\n                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }\n                            uVar13 = (int)dVar38 & 0xff;\n                          }" ({ "{") (expression_statement "dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);" (assignment_expression "dVar38 = (double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (identifier "dVar38") (= "=") (binary_expression "(double)fVar45 / dVar32 +\n                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0)" (binary_expression "(double)fVar45 / dVar32" (cast_expression "(double)fVar45" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar45")) (/ "/") (identifier "dVar32")) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43d0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43d0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43d0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (if_statement "if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" (if "if") (parenthesized_expression "(*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38)" (( "(") (binary_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38" (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))) (<= "<=") (identifier "dVar38")) () ")")) (compound_statement "{\n                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n                            }" ({ "{") (expression_statement "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (= "=") (binary_expression "dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar38") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar13 = (int)dVar38 & 0xff;" (assignment_expression "uVar13 = (int)dVar38 & 0xff" (identifier "uVar13") (= "=") (binary_expression "(int)dVar38 & 0xff" (cast_expression "(int)dVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar38")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                            uVar13 = 0xff;\n                          }" (else "else") (compound_statement "{\n                            uVar13 = 0xff;\n                          }" ({ "{") (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" (identifier "uVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                          uVar13 = 0;\n                        }" (else "else") (compound_statement "{\n                          uVar13 = 0;\n                        }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n                        uVar13 = 0xff;\n                      }" (else "else") (compound_statement "{\n                        uVar13 = 0xff;\n                      }" ({ "{") (expression_statement "uVar13 = 0xff;" (assignment_expression "uVar13 = 0xff" (identifier "uVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                      uVar13 = 0;\n                    }" (else "else") (compound_statement "{\n                      uVar13 = 0;\n                    }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;" (assignment_expression "uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" (identifier "uVar8") (= "=") (binary_expression "uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" (identifier "uVar8") (| "|") (binary_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3" (parenthesized_expression "((int)uVar13 >> (uVar12 & 0x1f) & 1U)" (( "(") (binary_expression "(int)uVar13 >> (uVar12 & 0x1f) & 1U" (binary_expression "(int)uVar13 >> (uVar12 & 0x1f)" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (>> ">>") (parenthesized_expression "(uVar12 & 0x1f)" (( "(") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1U")) () ")")) (<< "<<") (number_literal "3")))) (; ";")) (} "}"))) (expression_statement "puVar10 = (undefined4 *)puVar20[uVar8 + 1];" (assignment_expression "puVar10 = (undefined4 *)puVar20[uVar8 + 1]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)puVar20[uVar8 + 1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar20[uVar8 + 1]" (identifier "puVar20") ([ "[") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) (] "]")))) (; ";")) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0))" (( "(") (binary_expression "(puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0)" (parenthesized_expression "(puVar10 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined4 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar20 = puVar10, uVar12 != 0)" (( "(") (comma_expression "puVar20 = puVar10, uVar12 != 0" (assignment_expression "puVar20 = puVar10" (identifier "puVar20") (= "=") (identifier "puVar10")) (, ",") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (; ";")) (expression_statement "local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);" (assignment_expression "local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" (identifier "local_340") (= "=") (pointer_expression "*(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" (* "*") (cast_expression "(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88)" (( "(") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4a88")) () ")"))))) (; ";")) (expression_statement "local_360 = dVar40;" (assignment_expression "local_360 = dVar40" (identifier "local_360") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "local_358 = dVar37;" (assignment_expression "local_358 = dVar37" (identifier "local_358") (= "=") (identifier "dVar37")) (; ";")) (expression_statement "local_350 = dVar33;" (assignment_expression "local_350 = dVar33" (identifier "local_350") (= "=") (identifier "dVar33")) (; ";")) (expression_statement "local_348 = dVar48;" (assignment_expression "local_348 = dVar48" (identifier "local_348") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "FUN_00165e20(param_1,local_378,*puVar20);" (call_expression "FUN_00165e20(param_1,local_378,*puVar20)" (identifier "FUN_00165e20") (argument_list "(param_1,local_378,*puVar20)" (( "(") (identifier "param_1") (, ",") (identifier "local_378") (, ",") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(local_310 + iVar16) = local_320;" (assignment_expression "*(undefined4 *)(local_310 + iVar16) = local_320" (pointer_expression "*(undefined4 *)(local_310 + iVar16)" (* "*") (cast_expression "(undefined4 *)(local_310 + iVar16)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_310 + iVar16)" (( "(") (binary_expression "local_310 + iVar16" (identifier "local_310") (+ "+") (identifier "iVar16")) () ")")))) (= "=") (identifier "local_320")) (; ";")) (} "}"))) (expression_statement "iVar16 = *(int *)(local_310 + iVar16);" (assignment_expression "iVar16 = *(int *)(local_310 + iVar16)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(local_310 + iVar16)" (* "*") (cast_expression "(int *)(local_310 + iVar16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_310 + iVar16)" (( "(") (binary_expression "local_310 + iVar16" (identifier "local_310") (+ "+") (identifier "iVar16")) () ")"))))) (; ";")) (if_statement "if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }" (if "if") (parenthesized_expression "((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0))" (( "(") (binary_expression "(*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)" (parenthesized_expression "(*param_1 == 2)" (( "(") (binary_expression "*param_1 == 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1[0xb4] + 0x40) != 0)" (( "(") (binary_expression "*(int *)(param_1[0xb4] + 0x40) != 0" (pointer_expression "*(int *)(param_1[0xb4] + 0x40)" (* "*") (cast_expression "(int *)(param_1[0xb4] + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb4] + 0x40)" (( "(") (binary_expression "param_1[0xb4] + 0x40" (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                dVar44 = (double)iVar16;\n                if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;\n              }" ({ "{") (expression_statement "dVar44 = (double)iVar16;" (assignment_expression "dVar44 = (double)iVar16" (identifier "dVar44") (= "=") (cast_expression "(double)iVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar16"))) (; ";")) (if_statement "if (iVar16 < 0) {\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n                }" ({ "{") (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (= "=") (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44;" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)\n                     = (float)dVar44" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" (* "*") (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)" (( "(") (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")) (* "*") (identifier "iVar14")) (+ "+") (identifier "iVar24")) (+ "+") (binary_expression "*(int *)(param_1[0xb4] + 0x44) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x44)" (* "*") (cast_expression "(int *)(param_1[0xb4] + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb4] + 0x44)" (( "(") (binary_expression "param_1[0xb4] + 0x44" (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dVar44" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar44"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(local_88 + 0x10) == 0) {\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }" (if "if") (parenthesized_expression "(*(int *)(local_88 + 0x10) == 0)" (( "(") (binary_expression "*(int *)(local_88 + 0x10) == 0" (pointer_expression "*(int *)(local_88 + 0x10)" (* "*") (cast_expression "(int *)(local_88 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x10)" (( "(") (binary_expression "local_88 + 0x10" (identifier "local_88") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar17 = iVar16 * 0x58;\n                iVar19 = param_1[0xb4];\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);\n                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);\n                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }\n              }" ({ "{") (expression_statement "iVar17 = iVar16 * 0x58;" (assignment_expression "iVar17 = iVar16 * 0x58" (identifier "iVar17") (= "=") (binary_expression "iVar16 * 0x58" (identifier "iVar16") (* "*") (number_literal "0x58"))) (; ";")) (expression_statement "iVar19 = param_1[0xb4];" (assignment_expression "iVar19 = param_1[0xb4]" (identifier "iVar19") (= "=") (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x28)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" (* "*") (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4)" (( "(") (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")) (* "*") (identifier "iVar14")) (+ "+") (identifier "iVar24")) (+ "+") (binary_expression "*(int *)(iVar19 + 8) * 4" (pointer_expression "*(int *)(iVar19 + 8)" (* "*") (cast_expression "(int *)(iVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 8)" (( "(") (binary_expression "iVar19 + 8" (identifier "iVar19") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x28)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x28)" (* "*") (cast_expression "(double *)(param_1[10] + iVar17 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[10] + iVar17 + 0x28)" (( "(") (binary_expression "param_1[10] + iVar17 + 0x28" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =\n                     (float)*(double *)(param_1[10] + iVar17 + 0x30)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4)" (( "(") (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")) (* "*") (identifier "iVar14")) (+ "+") (identifier "iVar24")) (+ "+") (binary_expression "*(int *)(iVar19 + 0x14) * 4" (pointer_expression "*(int *)(iVar19 + 0x14)" (* "*") (cast_expression "(int *)(iVar19 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x14)" (( "(") (binary_expression "iVar19 + 0x14" (identifier "iVar19") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x30)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x30)" (* "*") (cast_expression "(double *)(param_1[10] + iVar17 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[10] + iVar17 + 0x30)" (( "(") (binary_expression "param_1[10] + iVar17 + 0x30" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)\n                     = (float)*(double *)(param_1[10] + iVar17 + 0x38)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)" (( "(") (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 + iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")) (* "*") (identifier "iVar14")) (+ "+") (identifier "iVar24")) (+ "+") (binary_expression "*(int *)(param_1[0xb4] + 0x20) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x20)" (* "*") (cast_expression "(int *)(param_1[0xb4] + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb4] + 0x20)" (( "(") (binary_expression "param_1[0xb4] + 0x20" (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x38)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x38)" (* "*") (cast_expression "(double *)(param_1[10] + iVar17 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[10] + iVar17 + 0x38)" (( "(") (binary_expression "param_1[10] + iVar17 + 0x38" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (if_statement "if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }" (if "if") (parenthesized_expression "((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0))" (( "(") (binary_expression "(local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)" (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1[0xb4] + 0x34) != 0)" (( "(") (binary_expression "*(int *)(param_1[0xb4] + 0x34) != 0" (pointer_expression "*(int *)(param_1[0xb4] + 0x34)" (* "*") (cast_expression "(int *)(param_1[0xb4] + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb4] + 0x34)" (( "(") (binary_expression "param_1[0xb4] + 0x34" (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  *(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);\n                }" ({ "{") (expression_statement "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48);" (assignment_expression "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =\n                       (float)*(double *)(param_1[10] + iVar17 + 0x48)" (pointer_expression "*(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4)" (( "(") (binary_expression "param_1[0xb0] * 4 * iVar14 +\n                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4" (binary_expression "param_1[0xb0] * 4 * iVar14 +\n                            iVar24" (binary_expression "param_1[0xb0] * 4 * iVar14" (binary_expression "param_1[0xb0] * 4" (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")) (* "*") (identifier "iVar14")) (+ "+") (identifier "iVar24")) (+ "+") (binary_expression "*(int *)(param_1[0xb4] + 0x38) * 4" (pointer_expression "*(int *)(param_1[0xb4] + 0x38)" (* "*") (cast_expression "(int *)(param_1[0xb4] + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb4] + 0x38)" (( "(") (binary_expression "param_1[0xb4] + 0x38" (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)*(double *)(param_1[10] + iVar17 + 0x48)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1[10] + iVar17 + 0x48)" (* "*") (cast_expression "(double *)(param_1[10] + iVar17 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[10] + iVar17 + 0x48)" (( "(") (binary_expression "param_1[10] + iVar17 + 0x48" (binary_expression "param_1[10] + iVar17" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);" (assignment_expression "iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" (( "(") (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" (* "*") (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SyncCacheViewAuthenticPixels_003fa510"))) () ")")) (argument_list "(uVar6,param_3)" (( "(") (identifier "uVar6") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar17 == 0) {\n                bVar1 = false;\n              }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                bVar1 = false;\n              }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}"))) (expression_statement "iVar16 = iVar16 * 0x58 + param_1[10];" (assignment_expression "iVar16 = iVar16 * 0x58 + param_1[10]" (identifier "iVar16") (= "=") (binary_expression "iVar16 * 0x58 + param_1[10]" (binary_expression "iVar16 * 0x58" (identifier "iVar16") (* "*") (number_literal "0x58")) (+ "+") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")))) (; ";")) (if_statement "if ((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }\n              else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" (if "if") (parenthesized_expression "((local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48)))" (( "(") (binary_expression "(local_84 == 0) ||\n                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))" (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))" (( "(") (comma_expression "dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48)" (assignment_expression "dVar44 = *(double *)(iVar16 + 0x48)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(iVar16 + 0x48)" (* "*") (cast_expression "(double *)(iVar16 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x48)" (( "(") (binary_expression "iVar16 + 0x48" (identifier "iVar16") (+ "+") (number_literal "0x48")) () ")"))))) (, ",") (binary_expression "dVar44 == *(double *)(puVar28 + 0x4a48)" (identifier "dVar44") (== "==") (pointer_expression "*(double *)(puVar28 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar28 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x4a48)" (( "(") (binary_expression "puVar28 + 0x4a48" (identifier "puVar28") (+ "+") (number_literal "0x4a48")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                dVar41 = *(double *)(iVar16 + 0x28);\n                dVar38 = *(double *)(iVar16 + 0x30);\n                dVar46 = *(double *)(iVar16 + 0x38);\n                dVar44 = *(double *)(iVar16 + 0x48);\n              }" ({ "{") (expression_statement "dVar41 = *(double *)(iVar16 + 0x28);" (assignment_expression "dVar41 = *(double *)(iVar16 + 0x28)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(iVar16 + 0x28)" (* "*") (cast_expression "(double *)(iVar16 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x28)" (( "(") (binary_expression "iVar16 + 0x28" (identifier "iVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "dVar38 = *(double *)(iVar16 + 0x30);" (assignment_expression "dVar38 = *(double *)(iVar16 + 0x30)" (identifier "dVar38") (= "=") (pointer_expression "*(double *)(iVar16 + 0x30)" (* "*") (cast_expression "(double *)(iVar16 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x30)" (( "(") (binary_expression "iVar16 + 0x30" (identifier "iVar16") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "dVar46 = *(double *)(iVar16 + 0x38);" (assignment_expression "dVar46 = *(double *)(iVar16 + 0x38)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(iVar16 + 0x38)" (* "*") (cast_expression "(double *)(iVar16 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x38)" (( "(") (binary_expression "iVar16 + 0x38" (identifier "iVar16") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dVar44 = *(double *)(iVar16 + 0x48);" (assignment_expression "dVar44 = *(double *)(iVar16 + 0x48)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(iVar16 + 0x48)" (* "*") (cast_expression "(double *)(iVar16 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x48)" (( "(") (binary_expression "iVar16 + 0x48" (identifier "iVar16") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" (else "else") (compound_statement "{\n                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);\n                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);\n                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);\n                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);\n              }" ({ "{") (expression_statement "dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);" (assignment_expression "dVar46 = dVar44 * *(double *)(puVar2 + 0x4410)" (identifier "dVar46") (= "=") (binary_expression "dVar44 * *(double *)(puVar2 + 0x4410)" (identifier "dVar44") (* "*") (pointer_expression "*(double *)(puVar2 + 0x4410)" (* "*") (cast_expression "(double *)(puVar2 + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x4410)" (( "(") (binary_expression "puVar2 + 0x4410" (identifier "puVar2") (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar41 = dVar46 * *(double *)(iVar16 + 0x28);" (assignment_expression "dVar41 = dVar46 * *(double *)(iVar16 + 0x28)" (identifier "dVar41") (= "=") (binary_expression "dVar46 * *(double *)(iVar16 + 0x28)" (identifier "dVar46") (* "*") (pointer_expression "*(double *)(iVar16 + 0x28)" (* "*") (cast_expression "(double *)(iVar16 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x28)" (( "(") (binary_expression "iVar16 + 0x28" (identifier "iVar16") (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (expression_statement "dVar38 = dVar46 * *(double *)(iVar16 + 0x30);" (assignment_expression "dVar38 = dVar46 * *(double *)(iVar16 + 0x30)" (identifier "dVar38") (= "=") (binary_expression "dVar46 * *(double *)(iVar16 + 0x30)" (identifier "dVar46") (* "*") (pointer_expression "*(double *)(iVar16 + 0x30)" (* "*") (cast_expression "(double *)(iVar16 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x30)" (( "(") (binary_expression "iVar16 + 0x30" (identifier "iVar16") (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (expression_statement "dVar46 = dVar46 * *(double *)(iVar16 + 0x38);" (assignment_expression "dVar46 = dVar46 * *(double *)(iVar16 + 0x38)" (identifier "dVar46") (= "=") (binary_expression "dVar46 * *(double *)(iVar16 + 0x38)" (identifier "dVar46") (* "*") (pointer_expression "*(double *)(iVar16 + 0x38)" (* "*") (cast_expression "(double *)(iVar16 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x38)" (( "(") (binary_expression "iVar16 + 0x38" (identifier "iVar16") (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (} "}")))) (expression_statement "pdVar7 = (double *)(iVar5 + iVar14 * 0x20);" (assignment_expression "pdVar7 = (double *)(iVar5 + iVar14 * 0x20)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(iVar5 + iVar14 * 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar14 * 0x20)" (( "(") (binary_expression "iVar5 + iVar14 * 0x20" (identifier "iVar5") (+ "+") (binary_expression "iVar14 * 0x20" (identifier "iVar14") (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (expression_statement "*pdVar7 = dVar40 - dVar41;" (assignment_expression "*pdVar7 = dVar40 - dVar41" (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7")) (= "=") (binary_expression "dVar40 - dVar41" (identifier "dVar40") (- "-") (identifier "dVar41"))) (; ";")) (expression_statement "pdVar7[1] = dVar37 - dVar38;" (assignment_expression "pdVar7[1] = dVar37 - dVar38" (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar37 - dVar38" (identifier "dVar37") (- "-") (identifier "dVar38"))) (; ";")) (expression_statement "pdVar7[2] = dVar33 - dVar46;" (assignment_expression "pdVar7[2] = dVar33 - dVar46" (subscript_expression "pdVar7[2]" (identifier "pdVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "dVar33 - dVar46" (identifier "dVar33") (- "-") (identifier "dVar46"))) (; ";")) (if_statement "if (local_84 != 0) {\n                pdVar7[3] = dVar48 - dVar44;\n              }" (if "if") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pdVar7[3] = dVar48 - dVar44;\n              }" ({ "{") (expression_statement "pdVar7[3] = dVar48 - dVar44;" (assignment_expression "pdVar7[3] = dVar48 - dVar44" (subscript_expression "pdVar7[3]" (identifier "pdVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "dVar48 - dVar44" (identifier "dVar48") (- "-") (identifier "dVar44"))) (; ";")) (} "}"))) (if_statement "if ((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {\n                bVar1 = false;\n              }" (if "if") (parenthesized_expression "((param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0))" (( "(") (binary_expression "(param_1[0xca] != 0) &&\n                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)" (parenthesized_expression "(param_1[0xca] != 0)" (( "(") (binary_expression "param_1[0xca] != 0" (subscript_expression "param_1[0xca]" (identifier "param_1") ([ "[") (number_literal "0xca") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)" (( "(") (comma_expression "iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0" (assignment_expression "iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" (identifier "iVar16") (= "=") (call_expression "(*(code *)PTR_SetImageProgress_003f9ccc)\n                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003f9ccc)" (( "(") (pointer_expression "*(code *)PTR_SetImageProgress_003f9ccc" (* "*") (cast_expression "(code *)PTR_SetImageProgress_003f9ccc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageProgress_003f9ccc"))) () ")")) (argument_list "(param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,\n                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7])" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "-0x4ddc")) (, ",") (binary_expression "(int)uVar27 >> 0x1f" (cast_expression "(int)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x1f")) (, ",") (identifier "uVar27") (, ",") (number_literal "0") (, ",") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) () ")")))) (, ",") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                bVar1 = false;\n              }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}"))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = param_1[6];" (assignment_expression "iVar16 = param_1[6]" (identifier "iVar16") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < iVar16)" (( "(") (binary_expression "iVar25 < iVar16" (identifier "iVar25") (< "<") (identifier "iVar16")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          bVar1 = false;\n        }" (else "else") (compound_statement "{\n          bVar1 = false;\n        }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")))) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar27 < param_1[7])" (( "(") (binary_expression "(int)uVar27 < param_1[7]" (cast_expression "(int)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar27")) (< "<") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);" (call_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6)" (parenthesized_expression "(*(code *)PTR_DestroyCacheView_003f9f0c)" (( "(") (pointer_expression "*(code *)PTR_DestroyCacheView_003f9f0c" (* "*") (cast_expression "(code *)PTR_DestroyCacheView_003f9f0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyCacheView_003f9f0c"))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "FUN_00166940(local_390);" (call_expression "FUN_00166940(local_390)" (identifier "FUN_00166940") (argument_list "(local_390)" (( "(") (identifier "local_390") () ")"))) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0016dc30:\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }" (statement_identifier "LAB_0016dc30") (: ":") (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return uVar6;\n  }" (if "if") (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" (( "(") (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" (identifier "local_5c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003fa248")))) () ")")) (compound_statement "{\n    return uVar6;\n  }" ({ "{") (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))) (expression_statement "iVar26 = local_5c;" (assignment_expression "iVar26 = local_5c" (identifier "iVar26") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar28 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003fa07c" (identifier "puVar28") (= "=") (identifier "PTR___stack_chk_fail_003fa07c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003fa07c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);" (call_expression "(**(code **)(puVar28 + 0x28c55c))\n            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c55c))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x28c55c)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x28c55c)" (* "*") (cast_expression "(code **)(puVar28 + 0x28c55c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x28c55c)" (( "(") (binary_expression "puVar28 + 0x28c55c" (identifier "puVar28") (+ "+") (number_literal "0x28c55c")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,\n             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4e50")) (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ad4" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4ad4")) (, ",") (number_literal "0x56f") (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc48) + 0x10f4" (pointer_expression "*(int *)(puVar28 + 0x28bc48)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc48)" (( "(") (binary_expression "puVar28 + 0x28bc48" (identifier "puVar28") (+ "+") (number_literal "0x28bc48")) () ")")))) (+ "+") (number_literal "0x10f4")) () ")"))) (; ";")) (if_statement "if (iVar26 == 0) {\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }\n  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);\n  }" ({ "{") (expression_statement "(**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);" (call_expression "(**(code **)(puVar28 + 0x28c984))\n              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c984))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x28c984)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x28c984)" (* "*") (cast_expression "(code **)(puVar28 + 0x28c984)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x28c984)" (( "(") (binary_expression "puVar28 + 0x28c984" (identifier "puVar28") (+ "+") (number_literal "0x28c984")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,\n               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (( "(") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4d84" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4d84")) (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4e50")) (, ",") (number_literal "0x570") (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4ae8")) () ")"))) (; ";")) (} "}")) (else_clause "else if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" (else "else") (if_statement "if (*(int *)(iVar26 + 0x14) == -0x54535255) {\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar26 + 0x14) == -0x54535255)" (( "(") (binary_expression "*(int *)(iVar26 + 0x14) == -0x54535255" (pointer_expression "*(int *)(iVar26 + 0x14)" (* "*") (cast_expression "(int *)(iVar26 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x14)" (( "(") (binary_expression "iVar26 + 0x14" (identifier "iVar26") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;\n    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);\n    return uVar6;\n  }" ({ "{") (expression_statement "*(undefined4 *)(iVar26 + 0x14) = 0x54535254;" (assignment_expression "*(undefined4 *)(iVar26 + 0x14) = 0x54535254" (pointer_expression "*(undefined4 *)(iVar26 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar26 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x14)" (( "(") (binary_expression "iVar26 + 0x14" (identifier "iVar26") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0x54535254")) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);" (assignment_expression "uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar28 + 0x28c33c))(iVar26)" (parenthesized_expression "(**(code **)(puVar28 + 0x28c33c))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x28c33c)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x28c33c)" (* "*") (cast_expression "(code **)(puVar28 + 0x28c33c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x28c33c)" (( "(") (binary_expression "puVar28 + 0x28c33c" (identifier "puVar28") (+ "+") (number_literal "0x28c33c")) () ")"))))) () ")")) (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))))) (expression_statement "iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;" (assignment_expression "iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c" (identifier "iVar26") (= "=") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4d5c" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4d5c"))) (; ";")) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x28c984);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x28c984)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(puVar28 + 0x28c984)" (* "*") (cast_expression "(code **)(puVar28 + 0x28c984)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x28c984)" (( "(") (binary_expression "puVar28 + 0x28c984" (identifier "puVar28") (+ "+") (number_literal "0x28c984")) () ")"))))) (; ";")) (expression_statement "(*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);" (call_expression "(*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,\n             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8)" (( "(") (identifier "iVar26") (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4e50" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4e50")) (, ",") (number_literal "0x571") (, ",") (binary_expression "*(int *)(puVar28 + 0x28bc5c) + -0x4ae8" (pointer_expression "*(int *)(puVar28 + 0x28bc5c)" (* "*") (cast_expression "(int *)(puVar28 + 0x28bc5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x28bc5c)" (( "(") (binary_expression "puVar28 + 0x28bc5c" (identifier "puVar28") (+ "+") (number_literal "0x28bc5c")) () ")")))) (+ "+") (number_literal "-0x4ae8")) () ")"))) (; ";")) (do_statement "do {\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  } while (iVar24 != 0);" (do "do") (compound_statement "{\n    puVar20 = *(undefined4 **)(iVar26 + 0x60);\n    iVar24 = puVar20[1];\n    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);\n    *puVar20 = uVar6;\n    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));\n    *(int *)(iVar26 + 0x60) = iVar24;\n  }" ({ "{") (expression_statement "puVar20 = *(undefined4 **)(iVar26 + 0x60);" (assignment_expression "puVar20 = *(undefined4 **)(iVar26 + 0x60)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined4 **)(iVar26 + 0x60)" (* "*") (cast_expression "(undefined4 **)(iVar26 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar26 + 0x60)" (( "(") (binary_expression "iVar26 + 0x60" (identifier "iVar26") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "iVar24 = puVar20[1];" (assignment_expression "iVar24 = puVar20[1]" (identifier "iVar24") (= "=") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar29 + 0x28c254))(*puVar20)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x28c254)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x28c254)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28c254)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28c254)" (( "(") (binary_expression "pcVar29 + 0x28c254" (identifier "pcVar29") (+ "+") (number_literal "0x28c254")) () ")"))))) () ")")) (argument_list "(*puVar20)" (( "(") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) () ")")))) (; ";")) (expression_statement "*puVar20 = uVar6;" (assignment_expression "*puVar20 = uVar6" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));" (call_expression "(**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60))" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x28c254)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x28c254)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28c254)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28c254)" (( "(") (binary_expression "pcVar29 + 0x28c254" (identifier "pcVar29") (+ "+") (number_literal "0x28c254")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar26 + 0x60))" (( "(") (pointer_expression "*(undefined4 *)(iVar26 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar26 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x60)" (( "(") (binary_expression "iVar26 + 0x60" (identifier "iVar26") (+ "+") (number_literal "0x60")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(iVar26 + 0x60) = iVar24;" (assignment_expression "*(int *)(iVar26 + 0x60) = iVar24" (pointer_expression "*(int *)(iVar26 + 0x60)" (* "*") (cast_expression "(int *)(iVar26 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x60)" (( "(") (binary_expression "iVar26 + 0x60" (identifier "iVar26") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (*(int *)(iVar26 + 100) != 0) {\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar26 + 100) != 0)" (( "(") (binary_expression "*(int *)(iVar26 + 100) != 0" (pointer_expression "*(int *)(iVar26 + 100)" (* "*") (cast_expression "(int *)(iVar26 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 100)" (( "(") (binary_expression "iVar26 + 100" (identifier "iVar26") (+ "+") (number_literal "100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();\n    *(undefined4 *)(iVar26 + 100) = uVar6;\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c62c))();" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c62c))()" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar29 + 0x28c62c))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c62c))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x28c62c)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x28c62c)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28c62c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28c62c)" (( "(") (binary_expression "pcVar29 + 0x28c62c" (identifier "pcVar29") (+ "+") (number_literal "0x28c62c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar26 + 100) = uVar6;" (assignment_expression "*(undefined4 *)(iVar26 + 100) = uVar6" (pointer_expression "*(undefined4 *)(iVar26 + 100)" (* "*") (cast_expression "(undefined4 *)(iVar26 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 100)" (( "(") (binary_expression "iVar26 + 100" (identifier "iVar26") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0))" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0))" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c724))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x28c724)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x28c724)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28c724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28c724)" (( "(") (binary_expression "pcVar29 + 0x28c724" (identifier "pcVar29") (+ "+") (number_literal "0x28c724")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar26 + 0x2f0))" (( "(") (pointer_expression "*(undefined4 *)(iVar26 + 0x2f0)" (* "*") (cast_expression "(undefined4 *)(iVar26 + 0x2f0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x2f0)" (( "(") (binary_expression "iVar26 + 0x2f0" (identifier "iVar26") (+ "+") (number_literal "0x2f0")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar26 + 0x2f0) = uVar6;" (assignment_expression "*(undefined4 *)(iVar26 + 0x2f0) = uVar6" (pointer_expression "*(undefined4 *)(iVar26 + 0x2f0)" (* "*") (cast_expression "(undefined4 *)(iVar26 + 0x2f0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x2f0)" (( "(") (binary_expression "iVar26 + 0x2f0" (identifier "iVar26") (+ "+") (number_literal "0x2f0")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);" (assignment_expression "uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar29 + 0x28c254))(iVar26)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28c254))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x28c254)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x28c254)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28c254)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28c254)" (( "(") (binary_expression "pcVar29 + 0x28c254" (identifier "pcVar29") (+ "+") (number_literal "0x28c254")) () ")"))))) () ")")) (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) 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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) 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) (number_literal) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (comma_expression left: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (binary_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) 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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) 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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) 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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) 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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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)) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier)) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier)) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) 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: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (identifier) (number_literal) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (return_statement (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (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 (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (return_statement (identifier)))))

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

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined4 **ppuVar4;
  int iVar5;
  undefined4 uVar6;
  double *pdVar7;
  uint uVar8;
  uint uVar9;
  undefined4 *puVar10;
  int iVar11;
  int extraout_v1;
  uint uVar12;
  uint uVar13;
  int iVar14;
  undefined4 **ppuVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int iVar19;
  undefined4 *puVar20;
  undefined4 *puVar21;
  undefined4 *puVar22;
  int *piVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  uint uVar27;
  undefined *puVar28;
  code *pcVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  float fVar35;
  float fVar36;
  double dVar34;
  double dVar37;
  float fVar39;
  double dVar38;
  double dVar40;
  float fVar42;
  float fVar43;
  double dVar41;
  double dVar44;
  float fVar45;
  double dVar46;
  float fVar47;
  double dVar48;
  int *local_390;
  char *local_37c;
  undefined4 *local_378 [6];
  double local_360;
  double local_358;
  double local_350;
  double local_348;
  undefined8 local_340;
  undefined4 local_320;
  int local_310;
  int local_88;
  int local_84;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_003fa248;
  iVar26 = param_1[6];
  (*(code *)PTR_GetMagickResourceLimit_003fa154)(7);
  local_390 = (int *)(*(code *)PTR_AcquireQuantumMemory_003fa524)(extraout_v1,4);
  if (local_390 == (int *)0x0) {
    uVar6 = 0;
  }
  else {
    (*(code *)PTR_memset_003fa6ec)(local_390,0,extraout_v1 << 2);
    if (0 < extraout_v1) {
      iVar24 = 0;
      piVar23 = local_390;
      do {
        iVar5 = (*(code *)PTR_AcquireQuantumMemory_003fa524)(iVar26,0x40);
        *piVar23 = iVar5;
        if (iVar5 == 0) {
          local_390 = (int *)FUN_00166940(local_390);
          if (local_390 == (int *)0x0) {
            uVar6 = 0;
            goto LAB_0016dc30;
          }
          break;
        }
        iVar24 = iVar24 + 1;
        piVar23 = piVar23 + 1;
      } while (extraout_v1 != iVar24);
    }
    iVar26 = (*(code *)PTR_GetImageArtifact_003fa4d8)
                       (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4d9c);
    if (iVar26 == 0) {
      dVar30 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
    }
    else {
      dVar30 = (double)(*(code *)PTR_InterpretLocaleValue_003fa780)(iVar26,&local_37c);
      if (*local_37c == '%') {
        dVar30 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0x2a48);
      }
    }
    uVar6 = (*(code *)PTR_AcquireAuthenticCacheView_003f9eec)(param_1,param_3);
    puVar3 = PTR_UINT_003f98e4;
    puVar28 = PTR_LAB_003f98e0;
    uVar27 = 0;
    if (0 < param_1[7]) {
      bVar1 = true;
      dVar31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);
      dVar32 = *(double *)(PTR_UINT_003f98e4 + -0x2a80);
      do {
        iVar26 = (*(code *)PTR_omp_get_thread_num_003fa520)();
        if ((bVar1) &&
           (iVar24 = (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)
                               (uVar6,0,uVar27,param_1[6],1,param_3), puVar2 = PTR_LAB_003f98e0,
           iVar24 != 0)) {
          puVar20 = param_2;
          ppuVar4 = local_378;
          do {
            ppuVar15 = ppuVar4;
            puVar10 = puVar20;
            puVar22 = (undefined4 *)puVar10[1];
            puVar21 = (undefined4 *)puVar10[2];
            puVar20 = (undefined4 *)puVar10[3];
            *ppuVar15 = (undefined4 *)*puVar10;
            ppuVar15[1] = puVar22;
            ppuVar15[2] = puVar21;
            ppuVar15[3] = puVar20;
            puVar20 = puVar10 + 4;
            ppuVar4 = ppuVar15 + 4;
          } while (puVar20 != param_2 + 0xc4);
          puVar10 = (undefined4 *)puVar10[5];
          ppuVar15[4] = (undefined4 *)*puVar20;
          ppuVar15[5] = puVar10;
          iVar16 = param_1[6];
          uVar18 = uVar27 & 1;
          iVar5 = uVar18 * iVar16 * 0x20 + local_390[iVar26];
          iVar26 = (uVar27 + 1 & 1) * iVar16 * 0x20 + local_390[iVar26];
          iVar11 = 1;
          if (uVar18 != 0) {
            iVar11 = -1;
          }
          if (0 < iVar16) {
            iVar25 = 0;
            dVar34 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
            do {
              iVar14 = iVar25;
              if (uVar18 != 0) {
                iVar14 = (iVar16 + -1) - iVar25;
              }
              iVar16 = param_1[0xb0] * 4 * iVar14 + iVar24;
              if (local_84 == 0) {
                iVar17 = param_1[0xb4];
LAB_0016cdf8:
                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4);
                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4);
                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4);
                if (*(int *)(iVar17 + 0x34) == 0) {
                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
                else {
                  fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);
                }
              }
              else {
                iVar17 = param_1[0xb4];
                if ((*(int *)(iVar17 + 0x34) == 0) ||
                   (fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4),
                   fVar36 == *(float *)(PTR_LAB_003f98e0 + 0x4aa8))) goto LAB_0016cdf8;
                dVar33 = (double)fVar36 * dVar34;
                dVar40 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 8) * 4) * dVar33;
                dVar37 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x14) * 4) * dVar33;
                dVar33 = (double)*(float *)(iVar16 + *(int *)(iVar17 + 0x20) * 4) * dVar33;
                fVar36 = *(float *)(iVar16 + *(int *)(iVar17 + 0x38) * 4);
              }
              dVar48 = (double)fVar36;
              if (0 < iVar25) {
                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + 0x2a0);
                pdVar7 = (double *)(iVar5 + (iVar14 - iVar11) * 0x20);
                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;
                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;
                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;
                if (local_84 != 0) {
                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;
                }
              }
              if (0 < (int)uVar27) {
                if (iVar25 < param_1[6] + -1) {
                  pdVar7 = (double *)(iVar26 + (iVar11 + iVar14) * 0x20);
                  dVar44 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                  dVar40 = *pdVar7 * dVar44 + dVar40;
                  dVar37 = pdVar7[1] * dVar44 + dVar37;
                  dVar33 = pdVar7[2] * dVar44 + dVar33;
                  if (local_84 != 0) {
                    dVar48 = pdVar7[3] *
                             *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80) +
                             dVar48;
                  }
                }
                dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xc88);
                pdVar7 = (double *)(iVar26 + iVar14 * 0x20);
                dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;
                dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;
                dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;
                if (local_84 != 0) {
                  dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;
                }
                if (0 < iVar25) {
                  dVar44 = dVar30 * *(double *)(PTR_UINT_003f98e4 + -0xcc0);
                  pdVar7 = (double *)(iVar26 + (iVar14 - iVar11) * 0x20);
                  dVar46 = *(double *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a80);
                  dVar40 = dVar44 * *pdVar7 * dVar46 + dVar40;
                  dVar37 = dVar44 * pdVar7[1] * dVar46 + dVar37;
                  dVar33 = dVar44 * pdVar7[2] * dVar46 + dVar33;
                  if (local_84 != 0) {
                    dVar48 = dVar44 * pdVar7[3] * dVar46 + dVar48;
                  }
                }
              }
              if (0.0 <= dVar40) {
                if (dVar40 < *(double *)(puVar28 + 0x4a48)) {
                  fVar36 = (float)dVar40;
                }
                else {
                  fVar36 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar36 = 0.0;
              }
              dVar40 = (double)fVar36;
              if (0.0 <= dVar37) {
                if (dVar37 < *(double *)(puVar28 + 0x4a48)) {
                  fVar39 = (float)dVar37;
                }
                else {
                  fVar39 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar39 = 0.0;
              }
              dVar37 = (double)fVar39;
              if (0.0 <= dVar33) {
                if (dVar33 < *(double *)(puVar28 + 0x4a48)) {
                  fVar35 = (float)dVar33;
                }
                else {
                  fVar35 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                }
              }
              else {
                fVar35 = 0.0;
              }
              dVar33 = (double)fVar35;
              if (local_84 != 0) {
                if (0.0 <= dVar48) {
                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {
                    fVar42 = (float)dVar48;
                  }
                  else {
                    fVar42 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                  }
                }
                else {
                  fVar42 = 0.0;
                }
                dVar48 = (double)fVar42;
              }
              if (0.0 <= fVar36) {
                uVar12 = 0xff;
                if (fVar36 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar36)) {
                    uVar12 = 0;
                  }
                  else if (0.0 < fVar36) {
                    if ((double)fVar36 / *(double *)(puVar3 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar44 = (double)fVar36 / *(double *)(puVar3 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar12 = (int)dVar44 & 0xff;
                    }
                    else {
                      uVar12 = 0xff;
                    }
                  }
                  else {
                    uVar12 = 0;
                  }
                }
              }
              else {
                uVar12 = 0;
              }
              if (0.0 <= fVar39) {
                if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar39)) {
                    uVar8 = 0;
                  }
                  else if (0.0 < fVar39) {
                    if ((double)fVar39 / *(double *)(puVar3 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar44 = (double)fVar39 / *(double *)(puVar3 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar8 = (int)dVar44 & 0xff;
                    }
                    else {
                      uVar8 = 0xff;
                    }
                  }
                  else {
                    uVar8 = 0;
                  }
                }
                else {
                  uVar8 = 0xff;
                }
              }
              else {
                uVar8 = 0;
              }
              if (0.0 <= fVar35) {
                if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                  if (NAN(fVar35)) {
                    uVar13 = 0;
                  }
                  else if (0.0 < fVar35) {
                    if ((double)fVar35 / *(double *)(puVar3 + -0x2a80) <
                        *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                      dVar44 = (double)fVar35 / *(double *)(puVar3 + -0x2a80) +
                               *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                        dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar13 = (int)dVar44 & 0xff;
                    }
                    else {
                      uVar13 = 0xff;
                    }
                  }
                  else {
                    uVar13 = 0;
                  }
                }
                else {
                  uVar13 = 0xff;
                }
              }
              else {
                uVar13 = 0;
              }
              uVar12 = (uVar13 >> 2) << 0xc | (uVar8 >> 2) << 6 | uVar12 >> 2;
              if (local_84 != 0) {
                if (0.0 <= dVar48) {
                  if (dVar48 < *(double *)(puVar28 + 0x4a48)) {
                    fVar42 = (float)dVar48;
                    if (NAN(fVar42)) {
                      uVar8 = 0;
                    }
                    else if (0.0 < fVar42) {
                      if ((double)fVar42 / *(double *)(puVar3 + -0x2a80) <
                          *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                        dVar44 = (double)fVar42 / *(double *)(puVar3 + -0x2a80) +
                                 *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar44) {
                          dVar44 = dVar44 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar8 = (int)dVar44 & 0xff;
                      }
                      else {
                        uVar8 = 0xff;
                      }
                    }
                    else {
                      uVar8 = 0;
                    }
                  }
                  else {
                    uVar8 = 0xff;
                  }
                }
                else {
                  uVar8 = 0;
                }
                uVar12 = uVar12 | (uVar8 >> 2) << 0x12;
              }
              iVar16 = uVar12 * 4;
              if (*(int *)(local_310 + iVar16) < 0) {
                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
                fVar42 = fVar36;
                if (fVar43 <= fVar36) {
                  fVar42 = fVar43;
                }
                fVar47 = fVar39;
                if (fVar43 <= fVar39) {
                  fVar47 = fVar43;
                }
                if (fVar35 < fVar43) {
                  fVar43 = fVar35;
                }
                uVar12 = 7;
                dVar44 = *(double *)(puVar3 + -0x2a80);
                dVar46 = *(double *)(PTR_UINT_003f98e4 + -0x2a78);
                puVar20 = local_378[0];
                do {
                  uVar8 = 0;
                  if ((0.0 <= fVar36) &&
                     ((*(float *)(PTR_LAB_003f98e0 + 0x4aa8) <= fVar36 || (0.0 < fVar36)))) {
                    if ((double)fVar42 / dVar44 < dVar46) {
                      dVar38 = (double)fVar42 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                      if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                        dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                      }
                      uVar8 = (int)dVar38 & 0xff;
                    }
                    else {
                      uVar8 = 0xff;
                    }
                  }
                  if (0.0 <= fVar39) {
                    if (fVar39 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                      if (NAN(fVar39)) {
                        uVar13 = 0;
                      }
                      else {
                        uVar13 = 0;
                        if (0.0 < fVar39) goto LAB_0016d63c;
                      }
                    }
                    else {
LAB_0016d63c:
                      uVar13 = 0xff;
                      if ((double)fVar47 / dVar44 < dVar46) {
                        dVar38 = (double)fVar47 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar13 = (int)dVar38 & 0xff;
                      }
                    }
                  }
                  else {
                    uVar13 = 0;
                  }
                  if (0.0 <= fVar35) {
                    if (fVar35 < *(float *)(PTR_LAB_003f98e0 + 0x4aa8)) {
                      if (NAN(fVar35)) {
                        uVar9 = 0;
                      }
                      else {
                        if (0.0 < fVar35) goto LAB_0016d6f4;
                        uVar9 = 0;
                      }
                    }
                    else {
LAB_0016d6f4:
                      if ((double)fVar43 / dVar44 < dVar46) {
                        dVar38 = (double)fVar43 / dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                        if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                          dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                        }
                        uVar9 = (int)dVar38 & 0xff;
                      }
                      else {
                        uVar9 = 0xff;
                      }
                    }
                  }
                  else {
                    uVar9 = 0;
                  }
                  uVar8 = ((int)uVar9 >> (uVar12 & 0x1f) & 1U) << 2 |
                          ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 1 |
                          (int)uVar8 >> (uVar12 & 0x1f) & 1U;
                  if (local_84 != 0) {
                    if (0.0 <= dVar48) {
                      if (dVar48 < dVar31) {
                        fVar45 = (float)dVar48;
                        if (NAN(fVar45)) {
                          uVar13 = 0;
                        }
                        else if (0.0 < fVar45) {
                          if ((double)fVar45 / dVar32 < *(double *)(PTR_UINT_003f98e4 + -0x2a78)) {
                            dVar38 = (double)fVar45 / dVar32 +
                                     *(double *)(PTR_LAB_003f98e0 + 0x43d0);
                            if (*(double *)(PTR_LAB_003f98e0 + 0x43e0) <= dVar38) {
                              dVar38 = dVar38 - *(double *)(PTR_LAB_003f98e0 + 0x43e0);
                            }
                            uVar13 = (int)dVar38 & 0xff;
                          }
                          else {
                            uVar13 = 0xff;
                          }
                        }
                        else {
                          uVar13 = 0;
                        }
                      }
                      else {
                        uVar13 = 0xff;
                      }
                    }
                    else {
                      uVar13 = 0;
                    }
                    uVar8 = uVar8 | ((int)uVar13 >> (uVar12 & 0x1f) & 1U) << 3;
                  }
                  puVar10 = (undefined4 *)puVar20[uVar8 + 1];
                  uVar12 = uVar12 - 1;
                } while ((puVar10 != (undefined4 *)0x0) && (puVar20 = puVar10, uVar12 != 0));
                local_340 = *(undefined8 *)(PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4a88);
                local_360 = dVar40;
                local_358 = dVar37;
                local_350 = dVar33;
                local_348 = dVar48;
                FUN_00165e20(param_1,local_378,*puVar20);
                *(undefined4 *)(local_310 + iVar16) = local_320;
              }
              iVar16 = *(int *)(local_310 + iVar16);
              if ((*param_1 == 2) && (*(int *)(param_1[0xb4] + 0x40) != 0)) {
                dVar44 = (double)iVar16;
                if (iVar16 < 0) {
                  dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
                }
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x44) * 4)
                     = (float)dVar44;
              }
              if (*(int *)(local_88 + 0x10) == 0) {
                iVar17 = iVar16 * 0x58;
                iVar19 = param_1[0xb4];
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 8) * 4) =
                     (float)*(double *)(param_1[10] + iVar17 + 0x28);
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(iVar19 + 0x14) * 4) =
                     (float)*(double *)(param_1[10] + iVar17 + 0x30);
                *(float *)(param_1[0xb0] * 4 * iVar14 + iVar24 + *(int *)(param_1[0xb4] + 0x20) * 4)
                     = (float)*(double *)(param_1[10] + iVar17 + 0x38);
                if ((local_84 != 0) && (*(int *)(param_1[0xb4] + 0x34) != 0)) {
                  *(float *)(param_1[0xb0] * 4 * iVar14 +
                            iVar24 + *(int *)(param_1[0xb4] + 0x38) * 4) =
                       (float)*(double *)(param_1[10] + iVar17 + 0x48);
                }
              }
              iVar17 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(uVar6,param_3);
              if (iVar17 == 0) {
                bVar1 = false;
              }
              iVar16 = iVar16 * 0x58 + param_1[10];
              if ((local_84 == 0) ||
                 (dVar44 = *(double *)(iVar16 + 0x48), dVar44 == *(double *)(puVar28 + 0x4a48))) {
                dVar41 = *(double *)(iVar16 + 0x28);
                dVar38 = *(double *)(iVar16 + 0x30);
                dVar46 = *(double *)(iVar16 + 0x38);
                dVar44 = *(double *)(iVar16 + 0x48);
              }
              else {
                dVar46 = dVar44 * *(double *)(puVar2 + 0x4410);
                dVar41 = dVar46 * *(double *)(iVar16 + 0x28);
                dVar38 = dVar46 * *(double *)(iVar16 + 0x30);
                dVar46 = dVar46 * *(double *)(iVar16 + 0x38);
              }
              pdVar7 = (double *)(iVar5 + iVar14 * 0x20);
              *pdVar7 = dVar40 - dVar41;
              pdVar7[1] = dVar37 - dVar38;
              pdVar7[2] = dVar33 - dVar46;
              if (local_84 != 0) {
                pdVar7[3] = dVar48 - dVar44;
              }
              if ((param_1[0xca] != 0) &&
                 (iVar16 = (*(code *)PTR_SetImageProgress_003f9ccc)
                                     (param_1,PTR_s_irtualMetacontentFromStream_003f98f8 + -0x4ddc,
                                      (int)uVar27 >> 0x1f,uVar27,0,param_1[7]), iVar16 == 0)) {
                bVar1 = false;
              }
              iVar25 = iVar25 + 1;
              iVar16 = param_1[6];
            } while (iVar25 < iVar16);
          }
        }
        else {
          bVar1 = false;
        }
        uVar27 = uVar27 + 1;
      } while ((int)uVar27 < param_1[7]);
    }
    (*(code *)PTR_DestroyCacheView_003f9f0c)(uVar6);
    FUN_00166940(local_390);
    uVar6 = 1;
  }
LAB_0016dc30:
  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {
    return uVar6;
  }
  iVar26 = local_5c;
  puVar28 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  (**(code **)(puVar28 + 0x28c55c))
            (0x8000,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,*(int *)(puVar28 + 0x28bc5c) + -0x4ad4,
             0x56f,*(int *)(puVar28 + 0x28bc48) + 0x10f4);
  if (iVar26 == 0) {
    (**(code **)(puVar28 + 0x28c984))
              (*(int *)(puVar28 + 0x28bc5c) + -0x4d84,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x570,
               *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);
  }
  else if (*(int *)(iVar26 + 0x14) == -0x54535255) {
    *(undefined4 *)(iVar26 + 0x14) = 0x54535254;
    uVar6 = (**(code **)(puVar28 + 0x28c33c))(iVar26);
    return uVar6;
  }
  iVar26 = *(int *)(puVar28 + 0x28bc5c) + -0x4d5c;
  pcVar29 = *(code **)(puVar28 + 0x28c984);
  (*pcVar29)(iVar26,*(int *)(puVar28 + 0x28bc5c) + -0x4e50,0x571,
             *(int *)(puVar28 + 0x28bc5c) + -0x4ae8);
  do {
    puVar20 = *(undefined4 **)(iVar26 + 0x60);
    iVar24 = puVar20[1];
    uVar6 = (**(code **)(pcVar29 + 0x28c254))(*puVar20);
    *puVar20 = uVar6;
    (**(code **)(pcVar29 + 0x28c254))(*(undefined4 *)(iVar26 + 0x60));
    *(int *)(iVar26 + 0x60) = iVar24;
  } while (iVar24 != 0);
  if (*(int *)(iVar26 + 100) != 0) {
    uVar6 = (**(code **)(pcVar29 + 0x28c62c))();
    *(undefined4 *)(iVar26 + 100) = uVar6;
  }
  uVar6 = (**(code **)(pcVar29 + 0x28c724))(*(undefined4 *)(iVar26 + 0x2f0));
  *(undefined4 *)(iVar26 + 0x2f0) = uVar6;
  uVar6 = (**(code **)(pcVar29 + 0x28c254))(iVar26);
  return uVar6;
}

